[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <yisgcmjp5cj27yozthudyrdpfcovhcrgpqbyip5kcum4aa7qwl@52bccatjuiak>
Date: Mon, 18 Aug 2025 16:58:45 -0700
From: Justin Stitt <justinstitt@...gle.com>
To: Thorsten Blum <thorsten.blum@...ux.dev>
Cc: Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
linux-hardening@...r.kernel.org, linux-mips@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 5/8] MIPS: arc: Replace deprecated strcpy() with memcpy()
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 <thorsten.blum@...ux.dev>
> ---
> 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
Powered by blists - more mailing lists