um: Convert strscpy() usage to 2-argument style
authorKees Cook <keescook@chromium.org>
Fri, 2 Feb 2024 11:55:00 +0000 (03:55 -0800)
committerKees Cook <keescook@chromium.org>
Wed, 21 Feb 2024 04:47:32 +0000 (20:47 -0800)
The ARCH=um build has its own idea about strscpy()'s definition. Adjust
the callers to remove the redundant sizeof() arguments ahead of treewide
changes, since it needs a manual adjustment for the newly named
sized_strscpy() export.

Cc: Richard Weinberger <richard@nod.at>
Cc: linux-um@lists.infradead.org
Signed-off-by: Kees Cook <keescook@chromium.org>
arch/um/drivers/net_kern.c
arch/um/drivers/vector_kern.c
arch/um/drivers/vector_user.c
arch/um/include/shared/user.h
arch/um/os-Linux/drivers/ethertap_user.c
arch/um/os-Linux/drivers/tuntap_user.c
arch/um/os-Linux/umid.c

index cabcc501b448a3006abd9d7d417da75d90460a5a..77c4afb8ab907170320b747d0a91016181192f02 100644 (file)
@@ -265,7 +265,7 @@ static void uml_net_poll_controller(struct net_device *dev)
 static void uml_net_get_drvinfo(struct net_device *dev,
                                struct ethtool_drvinfo *info)
 {
-       strscpy(info->driver, DRIVER_NAME, sizeof(info->driver));
+       strscpy(info->driver, DRIVER_NAME);
 }
 
 static const struct ethtool_ops uml_net_ethtool_ops = {
index 131b7cb29576727cf116402ac526a1c3079489b4..dc2feae789cbb2deefee5cadff6993e9859fa5c7 100644 (file)
@@ -1373,7 +1373,7 @@ static void vector_net_poll_controller(struct net_device *dev)
 static void vector_net_get_drvinfo(struct net_device *dev,
                                struct ethtool_drvinfo *info)
 {
-       strscpy(info->driver, DRIVER_NAME, sizeof(info->driver));
+       strscpy(info->driver, DRIVER_NAME);
 }
 
 static int vector_net_load_bpf_flash(struct net_device *dev,
index c719e1ec464512f9784972d649e833194833a72a..b16a5e5619d31f2d5141e9fa979d4aff0f447ec6 100644 (file)
@@ -141,7 +141,7 @@ static int create_tap_fd(char *iface)
        }
        memset(&ifr, 0, sizeof(ifr));
        ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_VNET_HDR;
-       strscpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name));
+       strscpy(ifr.ifr_name, iface);
 
        err = ioctl(fd, TUNSETIFF, (void *) &ifr);
        if (err != 0) {
@@ -171,7 +171,7 @@ static int create_raw_fd(char *iface, int flags, int proto)
                goto raw_fd_cleanup;
        }
        memset(&ifr, 0, sizeof(ifr));
-       strscpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name));
+       strscpy(ifr.ifr_name, iface);
        if (ioctl(fd, SIOCGIFINDEX, (void *) &ifr) < 0) {
                err = -errno;
                goto raw_fd_cleanup;
index 9568cc04cbb7b0c4492da094cd3e35f401060954..326e52450e4143482d51cbd8105f5a59db6db88a 100644 (file)
@@ -52,7 +52,7 @@ static inline int printk(const char *fmt, ...)
 extern int in_aton(char *str);
 extern size_t strlcat(char *, const char *, size_t);
 extern size_t sized_strscpy(char *, const char *, size_t);
-#define strscpy(dst, src, size)        sized_strscpy(dst, src, size)
+#define strscpy(dst, src)      sized_strscpy(dst, src, sizeof(dst))
 
 /* Copied from linux/compiler-gcc.h since we can't include it directly */
 #define barrier() __asm__ __volatile__("": : :"memory")
index 3363851a4ae81e4cba6c2f827ed77e8a1371cdc9..bdf215c0eca75d68213ef2d5bf8e1741069a2106 100644 (file)
@@ -105,7 +105,7 @@ static int etap_tramp(char *dev, char *gate, int control_me,
        sprintf(data_fd_buf, "%d", data_remote);
        sprintf(version_buf, "%d", UML_NET_VERSION);
        if (gate != NULL) {
-               strscpy(gate_buf, gate, sizeof(gate_buf));
+               strscpy(gate_buf, gate);
                args = setup_args;
        }
        else args = nosetup_args;
index 2284e9c1cbbbf702d986e0f8337e77f07f475bb7..91f0e27ca3a6e4f4f7aeb707a49b761f144486d1 100644 (file)
@@ -146,7 +146,7 @@ static int tuntap_open(void *data)
                }
                memset(&ifr, 0, sizeof(ifr));
                ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
-               strscpy(ifr.ifr_name, pri->dev_name, sizeof(ifr.ifr_name));
+               strscpy(ifr.ifr_name, pri->dev_name);
                if (ioctl(pri->fd, TUNSETIFF, &ifr) < 0) {
                        err = -errno;
                        printk(UM_KERN_ERR "TUNSETIFF failed, errno = %d\n",
index 288c422bfa9647282a130f4f5d881113600d7f38..e09d65b05d1cab8892915d9eff2a586c4f6077a7 100644 (file)
@@ -40,7 +40,7 @@ static int __init make_uml_dir(void)
                                __func__);
                        goto err;
                }
-               strscpy(dir, home, sizeof(dir));
+               strscpy(dir, home);
                uml_dir++;
        }
        strlcat(dir, uml_dir, sizeof(dir));
@@ -243,7 +243,7 @@ int __init set_umid(char *name)
        if (strlen(name) > UMID_LEN - 1)
                return -E2BIG;
 
-       strscpy(umid, name, sizeof(umid));
+       strscpy(umid, name);
 
        return 0;
 }
@@ -262,7 +262,7 @@ static int __init make_umid(void)
        make_uml_dir();
 
        if (*umid == '\0') {
-               strscpy(tmp, uml_dir, sizeof(tmp));
+               strscpy(tmp, uml_dir);
                strlcat(tmp, "XXXXXX", sizeof(tmp));
                fd = mkstemp(tmp);
                if (fd < 0) {