]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commitdiff
selftests/bpf: Replace strncpy() with strscpy()
authorIhor Solodrai <ihor.solodrai@linux.dev>
Mon, 23 Feb 2026 19:07:19 +0000 (11:07 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 24 Feb 2026 16:19:33 +0000 (08:19 -0800)
strncpy() does not guarantee NULL-termination and is considered
deprecated [1]. Replace strncpy() calls with strscpy().

[1] https://docs.kernel.org/process/deprecated.html#strncpy-on-nul-terminated-strings

Signed-off-by: Ihor Solodrai <ihor.solodrai@linux.dev>
Link: https://lore.kernel.org/r/20260223190736.649171-4-ihor.solodrai@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/network_helpers.c
tools/testing/selftests/bpf/prog_tests/bpf_iter.c
tools/testing/selftests/bpf/prog_tests/flow_dissector.c
tools/testing/selftests/bpf/prog_tests/queue_stack_map.c
tools/testing/selftests/bpf/prog_tests/skc_to_unix_sock.c
tools/testing/selftests/bpf/prog_tests/task_local_data.h
tools/testing/selftests/bpf/prog_tests/tc_redirect.c
tools/testing/selftests/bpf/test_progs.c
tools/testing/selftests/bpf/xdp_hw_metadata.c

index 5374b7e16d53645a7a2dffff9fc4d4ec68dfd2d6..b82f572641b7db5a2f32b2e4f997b70d90bacb8f 100644 (file)
@@ -581,8 +581,7 @@ int open_tuntap(const char *dev_name, bool need_mac)
                return -1;
 
        ifr.ifr_flags = IFF_NO_PI | (need_mac ? IFF_TAP : IFF_TUN);
-       strncpy(ifr.ifr_name, dev_name, IFNAMSIZ - 1);
-       ifr.ifr_name[IFNAMSIZ - 1] = '\0';
+       strscpy(ifr.ifr_name, dev_name);
 
        err = ioctl(fd, TUNSETIFF, &ifr);
        if (!ASSERT_OK(err, "ioctl(TUNSETIFF)")) {
index 5225d69bf79bbaefa0349204caa0e4e665759bf8..c69080ca14f5a164cb6efd29e40d751b804530d3 100644 (file)
@@ -346,8 +346,7 @@ static void test_task_sleepable(void)
                close(finish_pipe[1]);
 
                test_data = malloc(sizeof(char) * 10);
-               strncpy(test_data, "test_data", 10);
-               test_data[9] = '\0';
+               strscpy(test_data, "test_data", 10);
 
                test_data_long = malloc(sizeof(char) * 5000);
                for (int i = 0; i < 5000; ++i) {
index 08bae13248c4a8ab0bfa356a34b2738964d97f4c..fb489268146476f6b7ec1689d934a954a08887e2 100644 (file)
@@ -570,7 +570,7 @@ static int create_tap(const char *ifname)
        };
        int fd, ret;
 
-       strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
+       strscpy(ifr.ifr_name, ifname);
 
        fd = open("/dev/net/tun", O_RDWR);
        if (fd < 0)
@@ -599,7 +599,7 @@ static int ifup(const char *ifname)
        struct ifreq ifr = {};
        int sk, ret;
 
-       strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
+       strscpy(ifr.ifr_name, ifname);
 
        sk = socket(PF_INET, SOCK_DGRAM, 0);
        if (sk < 0)
index a043af9cd6d999402332d2605f03404724c9269e..41441325e1794ff4c96f4ec62282eda8b9ff1443 100644 (file)
@@ -28,9 +28,9 @@ static void test_queue_stack_map_by_type(int type)
                vals[i] = rand();
 
        if (type == QUEUE)
-               strncpy(file, "./test_queue_map.bpf.o", sizeof(file));
+               strscpy(file, "./test_queue_map.bpf.o");
        else if (type == STACK)
-               strncpy(file, "./test_stack_map.bpf.o", sizeof(file));
+               strscpy(file, "./test_stack_map.bpf.o");
        else
                return;
 
index 3eefdfed1db933f2998c114cb93df475c708a487..657d897958b6ffbc560ef9be5f7672a03b875e7c 100644 (file)
@@ -34,7 +34,7 @@ void test_skc_to_unix_sock(void)
 
        memset(&sockaddr, 0, sizeof(sockaddr));
        sockaddr.sun_family = AF_UNIX;
-       strncpy(sockaddr.sun_path, sock_path, strlen(sock_path));
+       strscpy(sockaddr.sun_path, sock_path);
        sockaddr.sun_path[0] = '\0';
 
        err = bind(sockfd, (struct sockaddr *)&sockaddr, sizeof(sockaddr));
index 0f86b9275cf98d7303d8109d5e2bb9a10dec1b49..8342e2fe5260b6d157de78930d539d43830f13f7 100644 (file)
@@ -262,7 +262,7 @@ retry:
                if (!atomic_compare_exchange_strong(&tld_meta_p->cnt, &cnt, cnt + 1))
                        goto retry;
 
-               strncpy(tld_meta_p->metadata[i].name, name, TLD_NAME_LEN);
+               strscpy(tld_meta_p->metadata[i].name, name);
                atomic_store(&tld_meta_p->metadata[i].size, size);
                return (tld_key_t){(__s16)off};
        }
index 76d72a59365eada02f7531ab7bb3f411f952406e..64fbda0823092ed9e2be95dcc231ad3e5ca72ba3 100644 (file)
@@ -1095,7 +1095,7 @@ static int tun_open(char *name)
 
        ifr.ifr_flags = IFF_TUN | IFF_NO_PI;
        if (*name)
-               strncpy(ifr.ifr_name, name, IFNAMSIZ);
+               strscpy(ifr.ifr_name, name);
 
        err = ioctl(fd, TUNSETIFF, &ifr);
        if (!ASSERT_OK(err, "ioctl TUNSETIFF"))
index 02a85dda30e649c890568af173815fd6b41e43de..d1418ec1f3513dcf72396536ab8ed8142e2d6d13 100644 (file)
@@ -1799,7 +1799,7 @@ static int worker_main_send_subtests(int sock, struct test_state *state)
 
                msg.subtest_done.num = i;
 
-               strncpy(msg.subtest_done.name, subtest_state->name, MAX_SUBTEST_NAME);
+               strscpy(msg.subtest_done.name, subtest_state->name, MAX_SUBTEST_NAME);
 
                msg.subtest_done.error_cnt = subtest_state->error_cnt;
                msg.subtest_done.skipped = subtest_state->skipped;
index 3d8de0d4c96a7afdf5f60b2fdff73c22b876ce54..6db3b5555a22ea2cfb7f74213e985a682abc2799 100644 (file)
@@ -550,7 +550,7 @@ static int rxq_num(const char *ifname)
        struct ifreq ifr = {
                .ifr_data = (void *)&ch,
        };
-       strncpy(ifr.ifr_name, ifname, IF_NAMESIZE - 1);
+       strscpy(ifr.ifr_name, ifname);
        int fd, ret;
 
        fd = socket(AF_UNIX, SOCK_DGRAM, 0);
@@ -571,7 +571,7 @@ static void hwtstamp_ioctl(int op, const char *ifname, struct hwtstamp_config *c
        struct ifreq ifr = {
                .ifr_data = (void *)cfg,
        };
-       strncpy(ifr.ifr_name, ifname, IF_NAMESIZE - 1);
+       strscpy(ifr.ifr_name, ifname);
        int fd, ret;
 
        fd = socket(AF_UNIX, SOCK_DGRAM, 0);