[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <218DE733-6165-45D8-9338-8DB6A96AB66A@zytor.com>
Date: Wed, 14 May 2025 21:54:23 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: Ruben Wauters <rubenru09@....com>, Thomas Gleixner <tglx@...utronix.de>,
Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
Dave Hansen <dave.hansen@...ux.intel.com>, x86@...nel.org
CC: linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86/cpu/intel: replace deprecated strcpy with strscpy
On May 14, 2025 12:16:20 PM PDT, Ruben Wauters <rubenru09@....com> wrote:
>On Wed, 2025-05-07 at 21:30 +0100, Ruben Wauters wrote:
>> On Wed, 2025-05-07 at 13:14 -0700, H. Peter Anvin wrote:
>> > On May 7, 2025 11:51:36 AM PDT, Ruben Wauters <rubenru09@....com>
>> > wrote:
>> > > strcpy is deprecated due to lack of bounds checking.
>> > > This patch replaces strcpy with strscpy, the recommended
>> > > alternative for
>> > > null terminated strings, to follow best practices.
>> > >
>> > > Signed-off-by: Ruben Wauters <rubenru09@....com>
>> > > ---
>> > > arch/x86/kernel/cpu/intel.c | 2 +-
>> > > 1 file changed, 1 insertion(+), 1 deletion(-)
>> > >
>> > > diff --git a/arch/x86/kernel/cpu/intel.c
>> > > b/arch/x86/kernel/cpu/intel.c
>> > > index 584dd55bf739..b49bba30434d 100644
>> > > --- a/arch/x86/kernel/cpu/intel.c
>> > > +++ b/arch/x86/kernel/cpu/intel.c
>> > > @@ -607,7 +607,7 @@ static void init_intel(struct cpuinfo_x86 *c)
>> > > }
>> > >
>> > > if (p)
>> > > - strcpy(c->x86_model_id, p);
>> > > + strscpy(c->x86_model_id, p);
>> > > }
>> > > #endif
>> > >
>> >
>> > strscpy() needs a buffer length; this patch wouldn't even compile!
>>
>> Hi, this is incorrect, strscpy is defined in string.h as
>> #define strscpy(dst, src, ...) \
>> CONCATENATE(__strscpy, COUNT_ARGS(__VA_ARGS__))(dst, src,
>> __VA_ARGS__)
>>
>> the third parameter is optional, and it works perfectly fine with two
>> parameters. I have compiled it, and there are no errors.
>>
>> > Not to mention that the string in question is generated in such a
>> > way
>> > that cannot be unterminated.
>>
>> I'm not entirely sure what you mean here? The assignments above are
>> null terminated strings, which the two parameter version works fine
>> with.
>
>Hello
>
>Just wanted to check that everything was ok with this patch, and that
>any concerns were addressed or explained. Please do let me know if
>there is anything I need to do or change to get this patch applied.
>
>Ruben Wauters
>
Yes, I stand corrected.
I still think it is superfluous (or arguably a memcpy would be better, since this is a fixed length) but it doesn't hurt enything.
Powered by blists - more mailing lists