From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B1A40C83F07 for ; Mon, 7 Jul 2025 07:46:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 53B3C6B02FB; Mon, 7 Jul 2025 03:46:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 512F56B02FD; Mon, 7 Jul 2025 03:46:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 44FC96B02FE; Mon, 7 Jul 2025 03:46:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 348106B02FB for ; Mon, 7 Jul 2025 03:46:53 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DA9FD160359 for ; Mon, 7 Jul 2025 07:46:52 +0000 (UTC) X-FDA: 83636687064.14.C729F54 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) by imf30.hostedemail.com (Postfix) with ESMTP id 19DF780004 for ; Mon, 7 Jul 2025 07:46:50 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=S7PAwDSn; spf=pass (imf30.hostedemail.com: domain of elver@google.com designates 209.85.215.181 as permitted sender) smtp.mailfrom=elver@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751874411; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9fNW/ipNPp9E7WVydECVXrddec24Up9r1hPRynNq8M0=; b=vMJRr6Fga3qySwLXX6xRjFQrWJkWqeVWqOMthtl8Lanpa4Mcrt0uHgo/Kr/wbjHZ2Re1xb QPOeFy/gjdu2KAQorov3JtDo/gaRjgsp8mBkuhqKik3b9JT67j7kbGAxuguAzuBIPW15t4 cNvsHfXWq8eY8WZn1JHwTqJ47IUa1Mw= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=S7PAwDSn; spf=pass (imf30.hostedemail.com: domain of elver@google.com designates 209.85.215.181 as permitted sender) smtp.mailfrom=elver@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751874411; a=rsa-sha256; cv=none; b=6+RR0diz8Hr4+oayPojRyc7SL+vt2CoJ9vxILCSYPS2DwNt5fPSVt9Esrnj8Q/uVc7BUip 7XkTHVPW9Mi5eYJyRph7Y70utk7Rz0aeb9Yojsky9vYuJ9F35V6hNBMgXqjKP08hkRl3Mv QSZbYtsRflxaDDjunIBULtv5oh8Ygys= Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-b271f3ae786so2033337a12.3 for ; Mon, 07 Jul 2025 00:46:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1751874410; x=1752479210; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=9fNW/ipNPp9E7WVydECVXrddec24Up9r1hPRynNq8M0=; b=S7PAwDSnqWMyiKbgI+07Bl6XKgx0AzUuPO74hlfMMuLbZHdw8MlfaC8SX2+KyvSpy5 EOIzu33+vHyYXtbvgyyqdt3Q8BaglAygrAOTrDzeQvcoVXpHJ0CDkYb4B2/pmGlpgHbK B7euCVLkAVSvMU4GjoMC4f78azYFxAisg7TA4AlB4r5rYAk4cojY1yN9edjudBSEv+zg T4lXHD3oyG8dA1a9bNA2tfslq0UDpuTJQqml2U53BSsAT74UaRVNH+HKtjMJdloHAUAN zH0wLKvCx1WhZqyEcwbr63lZ4PyHrBqzltpeLe39CJrekKKTpz9WB8na1w4yuikJEUIR T3Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751874410; x=1752479210; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=9fNW/ipNPp9E7WVydECVXrddec24Up9r1hPRynNq8M0=; b=mOCl62OjijFi2uZzwwWWXEbMcLON7S62OW59cV25OlTlNbjTDukWr+hj4OCbzwuaw/ t0/72rxKQBc3ylsxDFuesO33s7S1/H4r6IryoiFdvylkjpVD5FepygWJEIIbmawZ5Ti9 DSl6biOkFutzSZ6HB3m5kZwWMVA8nOA2OMv851CvneHTTSlR7lGsQtXw6ou3eCirkW/V RXllfH4YybYQ49dAMCHNqJ1q3/j1nPRMD/FpME5FOtB55gaog8elAq3Q8ULEYatZLDhq LVVblViSLqjYSV5m6iu2crynNRbgs4XK6GXnZm8ednKu30U+FeoMLhkXCdG7E4yjOVlt dlfg== X-Gm-Message-State: AOJu0YxuoXjR2RXTzkN5+skNsY2nhL4e0fzTm5C2JRe1tE+hpgv7M9FJ 9V3Y9GRlXnuRWBHaax2MmaRKbLAuwZzWkpyFlTNDWb+vKhtTCY9rGdrtPzdZYWnK3AoHhDPfTTp cbmM0cuKwluFMB2vWcinuoSfqcT3R1jEmfEKHPNj/lruOsRANiOCs+9s8P64= X-Gm-Gg: ASbGncsXsF/9mFAczd+Fkx3avs2totk0OHfn50/vXsA73k7YG0GDI6Tq8UF0rc+tYzo RvPxn3C/YBfEzeYyMJxhaLdCQhmhHAH7MUTpr/7StaUvICIqYUHeRrP5YEO8BrQU2iGHKbnp5RR 3iGxMtgXVE3WOEgv3GcdFmNYYByKGkynkcc84b8t4Jz5sxglpLwqAIgTa0yg/xZbPFDPoS6fwb+ Q== X-Google-Smtp-Source: AGHT+IGqO9oM46vaRZElMnGr6n15joXe3K7RM5q8sFYWV7Px+OQQzqoIe4GGrFaVhxXnxZxDnFNqlZsOgY72zLirvzc= X-Received: by 2002:a17:90b:57d0:b0:30e:5c7f:5d26 with SMTP id 98e67ed59e1d1-31aba8d28a3mr10983089a91.24.1751874409534; Mon, 07 Jul 2025 00:46:49 -0700 (PDT) MIME-Version: 1.0 References: <740755c1a888ae27de3f127c27bf925a91e9b264.1751862634.git.alx@kernel.org> In-Reply-To: <740755c1a888ae27de3f127c27bf925a91e9b264.1751862634.git.alx@kernel.org> From: Marco Elver Date: Mon, 7 Jul 2025 09:46:12 +0200 X-Gm-Features: Ac12FXwJB9HCD4i8JLB6RoA7PkR95ZBhaAJktuICujVit91FZfsr8G443fGUagE Message-ID: Subject: Re: [RFC v3 5/7] mm: Fix benign off-by-one bugs To: Alejandro Colomar Cc: linux-mm@kvack.org, linux-hardening@vger.kernel.org, Kees Cook , Christopher Bazley , shadow <~hallyn/shadow@lists.sr.ht>, linux-kernel@vger.kernel.org, Andrew Morton , kasan-dev@googlegroups.com, Dmitry Vyukov , Alexander Potapenko , Christoph Lameter , David Rientjes , Vlastimil Babka , Roman Gushchin , Harry Yoo , Andrew Clayton , Jann Horn , Linus Torvalds Content-Type: text/plain; charset="UTF-8" X-Stat-Signature: 8yt81whypn4asfbu1w4n7kzhzefet99g X-Rspamd-Queue-Id: 19DF780004 X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1751874410-596624 X-HE-Meta: U2FsdGVkX18DzpIA55+CeRJxEiYXMSmMRtjlBzaLl09vd74uFDwcDE6iSpG0kEf8ZXR2WRw1xnplFYwEaxTANHcoDOaA+yoXZWdE6lrEdXAot1zMpnYAK1VgVGLshRHPXJgK3HDZzw+JVs8L44JtZqoiMmscJeGHlq00sI6sdoDhL5a6V4xNvPn39uW2ULBxnkBW12KhSSJKENcVY+t/34IlteCWUo1I58A8qp82ThQDCfcQdCrpl3PeYG7fsjF9KN9Yvl8hoRkeU32lwvwIfuHYQo31FVWVnQuCkUR/VxiILzJti09KOKA/APT4hd4BItcytRMBC82FDpb5In5clX2IrWcjfRdDIeJwPGC2nkxIKTvyK302YXdaNsvmIoIYSRC5shCp87Hwmfy/Jgxp8uRotyNhwTWDq725/Ag89Tw+iyBrA6F93gaMx3KOngBEUtNkjSxema0IwsuBDLRsIZ/SpLzzeTUWkRlX+3j92nkGZuOEriYQRIkFX6EiNsbGkwAk9TgMfcp8kivqRVsvGpszCSeEZsyBrdXI7bWn/C3LdgsoRpGO98tnGx0q+HzM2zw0poOUjvssXCL8Z4vk21rR7QGJER3auXYz3QadgEd+rqH0O5mu3MXM5tV6Id9TwbT6RKXUOO/j0ZDL0iCpHF5k9vOJb9LtnO2JI2OnpyNoCYZ1tzw0j2cFu6zUDfEo5wosXYEXKcF9xFKcouObgyWP4zrSddH100Xid3vJLDq+9UHNdspBhMHhZZhjRttrVrcfTpujg/xPDYoZ9/H6T+Afg9O8AdalmACNCgOXxWoATsG1oMHNMYL+hIe80bfrTmNNoZTWWYNRqCFVyS3spq+opAqnE8WoOH2Y8Cof9N7F36MFXaVKZobBWaNUTDlOfmcuTDvi0s3Prr8qebqjwI+MRd3ylj/b5kIdOaNFmMqYd9WDqfjfxYqH7WpNSoOdyIciFHgipKUwDjXTiyg R6v3KUgs Gz/YXdD+V5/FgX/w45P0Q9NaU2qb3O6TwvykSadxPXz7YM0mEahkuD5QcRKH3ESQsq4L3cH+V1Ax2q6Kl9l1ggTqlkS2i9/BBNKIGoUiwh17xpEPGbDo64dZGKOiwxuK0qUm9Bmz+HxaaEtfviCONZfI5ntOU3WEOiT+1RaC5U57uZ2g0sccslVNteAkWgZoZjM1BzKZmL9zoWwxmAILu8kPBGB+zlV5ChOgsTPqirLUb7iVZmAmG5ptdYw5HcKaM5hsAg9TqVJdX0uJIJLsJO0BDnwMBg92vT+ub6yxZ01ehbsoDkM8nx03Tm4nHJggObUfJD39E8dKP3KbV4P6rSuiysn49A80kPO08zg6BxmnGC2HMp4Piiodi0k0CwLMOvf72sIyN2xfbubc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, 7 Jul 2025 at 07:06, Alejandro Colomar wrote: > > We were wasting a byte due to an off-by-one bug. s[c]nprintf() > doesn't write more than $2 bytes including the null byte, so trying to > pass 'size-1' there is wasting one byte. Now that we use seprintf(), > the situation isn't different: seprintf() will stop writing *before* > 'end' --that is, at most the terminating null byte will be written at > 'end-1'--. > > Fixes: bc8fbc5f305a (2021-02-26; "kfence: add test suite") > Fixes: 8ed691b02ade (2022-10-03; "kmsan: add tests for KMSAN") Not sure about the Fixes - this means it's likely going to be backported to stable kernels, which is not appropriate. There's no functional problem, and these are tests only, so not worth the churn. Did you run the tests? Otherwise: Acked-by: Marco Elver > Cc: Kees Cook > Cc: Christopher Bazley > Cc: Alexander Potapenko > Cc: Marco Elver > Cc: Dmitry Vyukov > Cc: Alexander Potapenko > Cc: Jann Horn > Cc: Andrew Morton > Cc: Linus Torvalds > Signed-off-by: Alejandro Colomar > --- > mm/kfence/kfence_test.c | 4 ++-- > mm/kmsan/kmsan_test.c | 2 +- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/mm/kfence/kfence_test.c b/mm/kfence/kfence_test.c > index ff734c514c03..f02c3e23638a 100644 > --- a/mm/kfence/kfence_test.c > +++ b/mm/kfence/kfence_test.c > @@ -110,7 +110,7 @@ static bool report_matches(const struct expect_report *r) > > /* Title */ > cur = expect[0]; > - end = &expect[0][sizeof(expect[0]) - 1]; > + end = ENDOF(expect[0]); > switch (r->type) { > case KFENCE_ERROR_OOB: > cur = seprintf(cur, end, "BUG: KFENCE: out-of-bounds %s", > @@ -140,7 +140,7 @@ static bool report_matches(const struct expect_report *r) > > /* Access information */ > cur = expect[1]; > - end = &expect[1][sizeof(expect[1]) - 1]; > + end = ENDOF(expect[1]); > > switch (r->type) { > case KFENCE_ERROR_OOB: > diff --git a/mm/kmsan/kmsan_test.c b/mm/kmsan/kmsan_test.c > index a062a46b2d24..882500807db8 100644 > --- a/mm/kmsan/kmsan_test.c > +++ b/mm/kmsan/kmsan_test.c > @@ -105,7 +105,7 @@ static bool report_matches(const struct expect_report *r) > > /* Title */ > cur = expected_header; > - end = &expected_header[sizeof(expected_header) - 1]; > + end = ENDOF(expected_header); > > cur = seprintf(cur, end, "BUG: KMSAN: %s", r->error_type); > > -- > 2.50.0 >