]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
sparc: Replace deprecated strcpy() with strscpy() in domain services driver
authorThorsten Blum <thorsten.blum@linux.dev>
Mon, 22 Sep 2025 21:03:54 +0000 (23:03 +0200)
committerAndreas Larsson <andreas@gaisler.com>
Fri, 26 Sep 2025 15:27:18 +0000 (17:27 +0200)
strcpy() is deprecated; use strscpy() instead.

In ldom_set_var(), use pr_err() instead of printk(KERN_ERR) to silence a
checkpatch warning.

No functional changes intended.

Link: https://github.com/KSPP/linux/issues/88
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Reviewed-by: Andreas Larsson <andreas@gaisler.com>
Signed-off-by: Andreas Larsson <andreas@gaisler.com>
arch/sparc/kernel/ds.c

index ffdc15588ac2e229be2ae5a3a5da7fcbebdd3a9c..f7fc6f2af2f2249bf1fe0a537dea6c129c2c7bb6 100644 (file)
@@ -781,14 +781,17 @@ void ldom_set_var(const char *var, const char *value)
                } pkt;
                char  *base, *p;
                int msg_len, loops;
+               size_t var_len, value_len;
 
-               if (strlen(var) + strlen(value) + 2 >
-                   sizeof(pkt) - sizeof(pkt.header)) {
-                       printk(KERN_ERR PFX
-                               "contents length: %zu, which more than max: %lu,"
-                               "so could not set (%s) variable to (%s).\n",
-                               strlen(var) + strlen(value) + 2,
-                               sizeof(pkt) - sizeof(pkt.header), var, value);
+               var_len = strlen(var) + 1;
+               value_len = strlen(value) + 1;
+
+               if (var_len + value_len > sizeof(pkt) - sizeof(pkt.header)) {
+                       pr_err(PFX
+                              "contents length: %zu, which more than max: %lu,"
+                              "so could not set (%s) variable to (%s).\n",
+                              var_len + value_len,
+                              sizeof(pkt) - sizeof(pkt.header), var, value);
                        return;
                }
 
@@ -797,10 +800,10 @@ void ldom_set_var(const char *var, const char *value)
                pkt.header.data.handle = cp->handle;
                pkt.header.msg.hdr.type = DS_VAR_SET_REQ;
                base = p = &pkt.header.msg.name_and_value[0];
-               strcpy(p, var);
-               p += strlen(var) + 1;
-               strcpy(p, value);
-               p += strlen(value) + 1;
+               strscpy(p, var, var_len);
+               p += var_len;
+               strscpy(p, value, value_len);
+               p += value_len;
 
                msg_len = (sizeof(struct ds_data) +
                           sizeof(struct ds_var_set_msg) +
@@ -910,7 +913,7 @@ static int register_services(struct ds_info *dp)
                pbuf.req.handle = cp->handle;
                pbuf.req.major = 1;
                pbuf.req.minor = 0;
-               strcpy(pbuf.id_buf, cp->service_id);
+               strscpy(pbuf.id_buf, cp->service_id);
 
                err = __ds_send(lp, &pbuf, msg_len);
                if (err > 0)