From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 55F8B2D97A9 for ; Wed, 10 Dec 2025 09:40:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765359646; cv=none; b=BhPU25dOMV0nEasWbsUMU4kJ3sRRy7DqHZfcRoGnIdTL39IgaXDUmZeJB+GiWhLU5BSLhoLQaE737G4es9uxTo7xbR9L3qHRY8N9cLcZ0T6iw83ldkrgxxh9P4F0oV/fLtRS9SWDz9NWMSBezSQ7LY7GGilOtcFE2lU5OkUf/Rw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765359646; c=relaxed/simple; bh=5mAE/it+Fo1AKUgHkCL0bLm92Cp67lobb0m63vWDV10=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GNFlcKeeAO3go+i0FSYFw0/GbeJBL9AcYmYi+76xfPDC9UiKlB/fEe3AqqzVsJbaQ4ddk2zB4zJ2HEIfbKLPkbSWoCqvMVo/vo7UmexWc2VMcLn+BbbeLcnlmuqeNMmpXlvsojaypA5e1sZ+c/4OY1GTNV+kN9tSBE7Qw/5JtCY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=A5JHLZ46; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="A5JHLZ46" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-477bf34f5f5so52157015e9.0 for ; Wed, 10 Dec 2025 01:40:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765359643; x=1765964443; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=UbILqQT5bbBHGeP3xJWkoMSV+nndRhsawC3JuOETnOc=; b=A5JHLZ46U8VIRUl+OMU4m3MsBtyzRN2Yc89sYSM1TnpjTYxKM5NTZefIcm4UWQ1E39 dhWzSC/0lA9wEtIMvtBrVZRVO4F9S7V0KAtHAZmtfCHXtp/VoUp7n0VKySP47g1XrIcz EdeilaJModwVwUF/uILZfF7VXUDvZ9qH0O/AJ7J56E/AfiKBk3/wSEmZRe7QokiRLw7s GqWFi9y7iwSJ++2Vw4Wq1aofWFFPTIXnAr2SyrS+9j/CEd+cP9uFkq/zve+NZ77xGYwd 7ifsUPhjtW9koRVxzlxv8eDB7FQH95yCJzfbEDwakW/YnKmFakH4zrsWrYIuGhStVJ7d exlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765359643; x=1765964443; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UbILqQT5bbBHGeP3xJWkoMSV+nndRhsawC3JuOETnOc=; b=ZO32TGvPc5My7em20ZUo7jxYzScZB8t3Kps5GyFo/rXcKaZaL1HsENgSKD7sL+JbvQ lTzrDtXzkUobslkfmaoglaAaetK/OJl9xt90uPK06xejwNoaFwmD7hF3mPFF44ycMqT4 odL2wYLksnVztDCAjD37bON33l5SF6eXVe+yg03Zi9k9rf/MalS3KL122EXM3c2B/RFe +IHp0axtZJEYSFP+4Url3JPw4XcYsVoVfhd5o7JxXFNDi9Xqufmru5JQxnTTPB5lUK8u m7lBcqWOEkR891rO5/PW3VUq6DpPR7uWVgFrkzc/gJUZKuP4p5K8mxDuev5yPo72+sQ2 wc2A== X-Forwarded-Encrypted: i=1; AJvYcCXwodwoOw2I1z7VWZhjNOekEvMkk59PkSjNmqI1RVvf6QetR+LHZKV3WwM3ddWKt6z9Md0cH4dQ/4cwA68=@vger.kernel.org X-Gm-Message-State: AOJu0YzvpW6galyjcgxUH1m2/bDJKiLor3vPqVuxGEg/cXyy0N9LwgiJ C5GpUJv0ZVguMdkHMUXVxdn0ZvoSG5BCyFkSY1eBUtJuEj0FF2r8vgJTfWb7nA== X-Gm-Gg: ASbGnct1t6d9nZ1zD6Do6kZJa0s1KZoUbBAXY3UUtrWtdhl0TiiF/rvrVMgPc4HBeaU hf7WV9Pzyu4EVHkHSbRrwKqY6di1GAauEtN1H82Ds6GbgBfuKCgAP9Sgf8VtUBD9uJ9132I5Myd 42E6PB1Fz9CT1cUS5Ns0AC4uIfrQEVM/eSgZtfwjcUfPzv/+NRpVsvGwt3wCo2vie0n8mbX9p5g tGfQI/ACttGPiyhmXiBWs492c6OmGZ4M76NyYh/k7q5lc5EbxbOHxmq4NBSStUEaNJ4f3Jjy88Q URjJdb/jzt60XPrxPYQj+w3Yw2PzQu1ZKuYxbViGQ2jAevWfCBE9S8hfFunnu3vUz7FLq1ZYd6w UOGXRFWmkRF3gv81XgvV6WMJFgzcyjrb0NSyNoAUBojp+H3Aa2NVpionxGoa2V/iFuqwqpLr55z NmznDEyy/7ftVTc54Pdom65Nd5BEjsSuCUaqVEfggknVQXrss1iVD5Pi8wvR2/ZqU= X-Google-Smtp-Source: AGHT+IFgYTvN+JRWe7w7sIICkR3xfHfjYypEgQNzdYghaWZV/+8MJ74uY5cXAEwQ7uh8AQDBt0GwKg== X-Received: by 2002:a05:600c:4fd5:b0:475:e067:f23d with SMTP id 5b1f17b1804b1-47a8379581dmr18006845e9.25.1765359642584; Wed, 10 Dec 2025 01:40:42 -0800 (PST) Received: from pumpkin (82-69-66-36.dsl.in-addr.zen.co.uk. [82.69.66.36]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47a82d935d4sm35369295e9.15.2025.12.10.01.40.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Dec 2025 01:40:42 -0800 (PST) Date: Wed, 10 Dec 2025 09:40:41 +0000 From: David Laight To: Ian Rogers Cc: Andrew Morton , linux-kernel@vger.kernel.org Subject: Re: [PATCH v1] netlink: Remove implicit 32-bit trunction in nla_memcmp Message-ID: <20251210094041.1cf3ad42@pumpkin> In-Reply-To: <20251209224158.2322551-1-irogers@google.com> References: <20251209224158.2322551-1-irogers@google.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; arm-unknown-linux-gnueabihf) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 9 Dec 2025 14:41:58 -0800 Ian Rogers wrote: > 64-bit truncation to 32-bit can result in the sign of the truncated > value changing. The nla_memcmp function subtracts a 16-bit nla_len > from a size_t size and so this shouldn't occur, but the code looks > hazardous so change it to make the comparisons explicit and avoid a > truncated subtract. > > Signed-off-by: Ian Rogers > --- > lib/nlattr.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/lib/nlattr.c b/lib/nlattr.c > index be9c576b6e2d..6e1c40dd11e3 100644 > --- a/lib/nlattr.c > +++ b/lib/nlattr.c > @@ -854,12 +854,12 @@ EXPORT_SYMBOL(nla_memcpy); > int nla_memcmp(const struct nlattr *nla, const void *data, > size_t size) > { > - int d = nla_len(nla) - size; > + u16 l = nla_len(nla); Don't use u16 for locals. Generates unnecessarily bad code. David > > - if (d == 0) > - d = memcmp(nla_data(nla), data, size); > + if (l == size) > + return memcmp(nla_data(nla), data, size); > > - return d; > + return l > size ? 1 : -1; > } > EXPORT_SYMBOL(nla_memcmp); >