mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Bradley Morgan <brads@mainlining.org>
To: Doug Anderson <dianders@chromium.org>
Cc: akpm@linux-foundation.org, blum@kernel.org, tglx@linutronix.de,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] watchdog/perf: fix off by one in the raw event config copy
Date: Sat, 03 Oct 2026 11:28:53 +0100	[thread overview]
Message-ID: <281CB59F-AE76-4619-8ACC-26F95558F117@mainlining.org> (raw)
In-Reply-To: <CAD=FV=XDQyHTT=Mm72am7hCnRYWvZXJFw3TKA3Ty-e1WccY=uQ@mail.gmail.com>

On 3 October 2026 01:30:05 BST, Doug Anderson <dianders@chromium.org>
wrote:
>Hi,
>
>On Fri, Oct 2, 2026 at 5:06 PM Bradley Morgan <brads@mainlining.org>
>wrote:
>>
>> You were right, the truncation was the bigger half of the bug and my
>> v1 only closed the corner. Fixed both with your len + 1 shape.
>
>The above should have been "after the cut". Where you have it now,
>it'll end up in the commit message.
>
>
>> Commit 6164be01f179 ("watchdog/perf: optimize bytes copied and remove
>> manual NUL-termination") replaced strscpy(buf, str, sizeof(buf)) plus a
>> manual buf[len] = 0 with strscpy(buf, str, len). That count is one less
>> than the code needs, strscpy() always reserves the last byte of the
>> destination for the NUL, so the config loses its final digit.
>> nmi_watchdog=r300,panic for example ends up with buf = "30" and arms
>> the raw event with the wrong config.
>>
>> The same count also drops the empty case on the floor, strscpy() with
>> a zero count writes nothing at all, so nmi_watchdog=r,1 leaves buf
>> uninitialized and kstrtoull() reads stack garbage.
>>
>> The old code was safe on both counts by accident, strscpy() filled the
>> whole buffer before buf[len] = 0 overwrote the comma position, so the
>> worst outcome was a truncated parse failure.
>>
>> Pass len + 1 so the copy includes the character the NUL replaces, and
>> reject len >= sizeof(buf) like the code did before the optimization,
>> which also makes an empty config a clean parse failure again.
>>
>> Suggested-by: Doug Anderson <dianders@chromium.org>
>> Fixes: 6164be01f179 ("watchdog/perf: optimize bytes copied and remove
>manual NUL-termination")
>> Signed-off-by: Bradley Morgan <brads@mainlining.org>
>> ---
>>  kernel/watchdog_perf.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/kernel/watchdog_perf.c b/kernel/watchdog_perf.c
>> index cca0485ba28c..a4f677c16b20 100644
>> --- a/kernel/watchdog_perf.c
>> +++ b/kernel/watchdog_perf.c
>> @@ -301,10 +301,10 @@ void __init hardlockup_config_perf_event(const
>char *str)
>>         } else {
>>                 unsigned int len = comma - str;
>>
>> -               if (!len || len > sizeof(buf))
>> +               if (len >= sizeof(buf))
>
>It looks like you sent this atop your previous v1 patch. You should
>send your v2 patch as if your v1 patch wasn't applied.
>
>Also, you probably don't need my Suggested-by tag. I just gave review
>feedback on v1, which usually doesn't warrant a Suggested-by.
>
>-Doug
>

Thanks, god sake, I did a fart, I'll resend V2 in a new thread... (Sigh,
new email tool bugging me)
--- Thanks!
"I'm not a very positive person" - Linus torvalds

      reply	other threads:[~2026-10-03 10:28 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-02 17:50 [PATCH] watchdog/perf: reject empty config before the raw event parse Bradley Morgan
2026-10-02 22:12 ` Doug Anderson
2026-10-02 22:17   ` Bradley Morgan
2026-10-02 22:19     ` Doug Anderson
2026-10-03  0:08       ` [PATCH v2] watchdog/perf: fix off by one in the raw event config copy Bradley Morgan
2026-10-03  0:30         ` Doug Anderson
2026-10-03 10:28           ` Bradley Morgan [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=281CB59F-AE76-4619-8ACC-26F95558F117@mainlining.org \
    --to=brads@mainlining.org \
    --cc=akpm@linux-foundation.org \
    --cc=blum@kernel.org \
    --cc=dianders@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®