strcpy() is deprecated; use memcpy() and strscpy() instead.

Add the local variable 'size_t len' to keep track of the string lengths
and prefer memcpy() over strscpy() when we use the string length to
advance the 'cp' pointer.

No functional changes intended.

Link: https://github.com/KSPP/linux/issues/88
Signed-off-by: Thorsten Blum <thorsten.b...@linux.dev>
---
 arch/mips/rb532/prom.c | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/arch/mips/rb532/prom.c b/arch/mips/rb532/prom.c
index b88e89ec5894..8c370eb180ef 100644
--- a/arch/mips/rb532/prom.c
+++ b/arch/mips/rb532/prom.c
@@ -53,6 +53,7 @@ static void __init prom_setup_cmdline(void)
        int prom_argc;
        char **prom_argv;
        int i;
+       size_t len;
 
        prom_argc = fw_arg0;
        prom_argv = (char **) fw_arg1;
@@ -82,20 +83,20 @@ static void __init prom_setup_cmdline(void)
                                mips_machtype = MACH_MIKROTIK_RB532;
                }
 
-               strcpy(cp, prom_argv[i]);
-               cp += strlen(prom_argv[i]);
+               len = strlen(prom_argv[i]);
+               memcpy(cp, prom_argv[i], len + 1);
+               cp += len;
        }
        *(cp++) = ' ';
 
-       i = strlen(arcs_cmdline);
-       if (i > 0) {
+       len = strlen(arcs_cmdline);
+       if (len > 0) {
                *(cp++) = ' ';
-               strcpy(cp, arcs_cmdline);
-               cp += strlen(arcs_cmdline);
+               memcpy(cp, arcs_cmdline, len + 1);
+               cp += len;
        }
        cmd_line[COMMAND_LINE_SIZE - 1] = '\0';
-
-       strcpy(arcs_cmdline, cmd_line);
+       strscpy(arcs_cmdline, cmd_line);
 }
 
 void __init prom_init(void)
-- 
2.50.1


Reply via email to