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
prev parent 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®