]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
libbpf: Use strscpy() in kernel code for skel_map_create()
authorKees Cook <kees@kernel.org>
Wed, 13 May 2026 05:08:07 +0000 (22:08 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 13 May 2026 17:52:32 +0000 (10:52 -0700)
Linux has deprecated[1] strncpy(), and the use in skel_map_create()
is best replaced with strscpy(). Since we still need to build this
file in userspace, leave the strncpy() in place in that case. This
is the last use of strncpy() in the kernel.

Link: https://github.com/KSPP/linux/issues/90
Signed-off-by: Kees Cook <kees@kernel.org>
Link: https://lore.kernel.org/r/20260513050806.do.620-kees@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/skel_internal.h

index 6a8f5c7a02eb97dca451374201349d6e8cb32721..74503d358bc8a51cb8b523cec8a3869aa94f322c 100644 (file)
@@ -243,7 +243,12 @@ static inline int skel_map_create(enum bpf_map_type map_type,
        attr.excl_prog_hash = (unsigned long) excl_prog_hash;
        attr.excl_prog_hash_size = excl_prog_hash_sz;
 
+#ifdef __KERNEL__
+       if (strscpy(attr.map_name, map_name) < 0)
+               return -EINVAL;
+#else
        strncpy(attr.map_name, map_name, sizeof(attr.map_name));
+#endif
        attr.key_size = key_size;
        attr.value_size = value_size;
        attr.max_entries = max_entries;