Hi,

On Sun, Aug 17, 2025 at 08:37:15PM +0200, Thorsten Blum wrote:
> strcpy() is deprecated; use memcpy() instead.
> 
> Use pr_debug() instead of printk(KERN_DEBUG) to silence a checkpatch
> warning.

I'd like to see more reasoning for why you chose memcpy() here. With api
refactors like this I think most folks want to know if 1) there is any
functional change and 2) why you chose the api.

> 
> Link: https://github.com/KSPP/linux/issues/88
> Signed-off-by: Thorsten Blum <[email protected]>
> ---
>  arch/mips/fw/arc/cmdline.c | 22 +++++++++++++---------
>  1 file changed, 13 insertions(+), 9 deletions(-)
> 
> diff --git a/arch/mips/fw/arc/cmdline.c b/arch/mips/fw/arc/cmdline.c
> index 155c5e911723..86b0e377b713 100644
> --- a/arch/mips/fw/arc/cmdline.c
> +++ b/arch/mips/fw/arc/cmdline.c
> @@ -42,12 +42,13 @@ static char __init *move_firmware_args(int argc, LONG 
> *argv, char *cp)
>  {
>       char *s;
>       int actr, i;
> +     size_t len;
>  
>       actr = 1; /* Always ignore argv[0] */
>  
>       while (actr < argc) {
> -             for(i = 0; i < ARRAY_SIZE(used_arc); i++) {
> -                     int len = strlen(used_arc[i][0]);
> +             for (i = 0; i < ARRAY_SIZE(used_arc); i++) {
> +                     len = strlen(used_arc[i][0]);
>  
>                       if (!strncmp(prom_argv(actr), used_arc[i][0], len)) {
>                       /* Ok, we want it. First append the replacement... */
> @@ -57,8 +58,9 @@ static char __init *move_firmware_args(int argc, LONG 
> *argv, char *cp)
>                               s = strchr(prom_argv(actr), '=');
>                               if (s) {
>                                       s++;
> -                                     strcpy(cp, s);
> -                                     cp += strlen(s);
> +                                     len = strlen(s);
> +                                     memcpy(cp, s, len + 1);
> +                                     cp += len;
>                               }
>                               *cp++ = ' ';
>                               break;
> @@ -74,6 +76,7 @@ void __init prom_init_cmdline(int argc, LONG *argv)
>  {
>       char *cp;
>       int actr, i;
> +     size_t len;
>  
>       actr = 1; /* Always ignore argv[0] */
>  
> @@ -86,14 +89,15 @@ void __init prom_init_cmdline(int argc, LONG *argv)
>  
>       while (actr < argc) {
>               for (i = 0; i < ARRAY_SIZE(ignored); i++) {
> -                     int len = strlen(ignored[i]);
> -
> +                     len = strlen(ignored[i]);
>                       if (!strncmp(prom_argv(actr), ignored[i], len))
>                               goto pic_cont;
>               }
> +
>               /* Ok, we want it. */
> -             strcpy(cp, prom_argv(actr));
> -             cp += strlen(prom_argv(actr));
> +             len = strlen(prom_argv(actr));
> +             memcpy(cp, prom_argv(actr), len + 1);
> +             cp += len;
>               *cp++ = ' ';
>  
>       pic_cont:
> @@ -105,6 +109,6 @@ void __init prom_init_cmdline(int argc, LONG *argv)
>       *cp = '\0';
>  
>  #ifdef DEBUG_CMDLINE
> -     printk(KERN_DEBUG "prom cmdline: %s\n", arcs_cmdline);
> +     pr_debug("prom cmdline: %s\n", arcs_cmdline);
>  #endif
>  }
> -- 
> 2.50.1
> 
>

Thanks
Justin

Reply via email to