On Fri, Jun 05, 2026 at 07:41:11AM +0300, Andy Shevchenko wrote:
> On Thu, Jun 04, 2026 at 03:17:53PM +0200, Thorsten Blum wrote:
> > In preparation to remove strlcat() from the kernel [1], replace two
> > strlcat() calls with one snprintf() call in setup_arch().
> > 
> > Also drop the explicit size argument of strscpy() to further simplify
> > the code since strscpy() can determine the size automatically when the
> > destination buffer has a fixed length.
> 
> > [1] https://github.com/KSPP/linux/issues/370
> 
> Make it Link tag?
> 
> ...
> 
> >     strscpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
> 
> This also has third argument fixed. Don't you want to change that?

That doesn't work because boot_command_line, at least the declaration in
linux/init.h, doesn't have a fixed size.

> >  #else
> >     if (builtin_cmdline[0]) {
> > +           size_t len = strnlen(builtin_cmdline, COMMAND_LINE_SIZE);
> > +
> >             /* append boot loader cmdline to builtin */
> > -           strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE);
> > -           strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE);
> > +           snprintf(builtin_cmdline + len, COMMAND_LINE_SIZE - len, " %s",
> > +                    boot_command_line);
> 
> Hmm... Wouldn't GCC complain on this? (Build with `make W=1`.)

No warnings with W=1. Why would GCC warn here?

> >             strscpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
> 
> And this has also third argument.

Same reason as above.

Thanks,
Thorsten

Reply via email to