]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ipv6: sit: Replace deprecated strcpy with strscpy
authorThorsten Blum <thorsten.blum@linux.dev>
Fri, 27 Feb 2026 00:45:42 +0000 (01:45 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sat, 28 Feb 2026 18:06:29 +0000 (10:06 -0800)
strcpy() has been deprecated [1] because it performs no bounds checking
on the destination buffer, which can lead to buffer overflows. Replace
it with the safer strscpy().  Use the two-argument version of strscpy()
to copy 'parms->name' in ipip6_tunnel_locate().

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Link: https://patch.msgid.link/20260227004541.798966-3-thorsten.blum@linux.dev
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/ipv6/sit.c

index 6a7b8abb047727c2859c077fbd2a01d99a4fdd5b..ef2e5111fb3a5bc05f645e0c986dbd5fa2f9e89b 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/types.h>
 #include <linux/socket.h>
 #include <linux/sockios.h>
+#include <linux/string.h>
 #include <linux/net.h>
 #include <linux/in6.h>
 #include <linux/netdevice.h>
@@ -256,9 +257,9 @@ static struct ip_tunnel *ipip6_tunnel_locate(struct net *net,
        if (parms->name[0]) {
                if (!dev_valid_name(parms->name))
                        goto failed;
-               strscpy(name, parms->name, IFNAMSIZ);
+               strscpy(name, parms->name);
        } else {
-               strcpy(name, "sit%d");
+               strscpy(name, "sit%d");
        }
        dev = alloc_netdev(sizeof(*t), name, NET_NAME_UNKNOWN,
                           ipip6_tunnel_setup);
@@ -275,7 +276,7 @@ static struct ip_tunnel *ipip6_tunnel_locate(struct net *net,
                goto failed_free;
 
        if (!parms->name[0])
-               strcpy(parms->name, dev->name);
+               strscpy(parms->name, dev->name);
 
        return nt;
 
@@ -1442,7 +1443,7 @@ static int ipip6_tunnel_init(struct net_device *dev)
        int err;
 
        tunnel->dev = dev;
-       strcpy(tunnel->parms.name, dev->name);
+       strscpy(tunnel->parms.name, dev->name);
 
        ipip6_tunnel_bind_dev(dev);
 
@@ -1863,7 +1864,7 @@ static int __net_init sit_init_net(struct net *net)
        ipip6_tunnel_clone_6rd(sitn->fb_tunnel_dev, sitn);
        ipip6_fb_tunnel_init(sitn->fb_tunnel_dev);
 
-       strcpy(t->parms.name, sitn->fb_tunnel_dev->name);
+       strscpy(t->parms.name, sitn->fb_tunnel_dev->name);
        return 0;
 
 err_reg_dev: