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