libbpf: Use strscpy() in kernel code for skel_map_create()

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 [1]
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>
This commit is contained in:
Kees Cook
2026-05-12 22:08:07 -07:00
committed by Alexei Starovoitov
parent cd59fa185a
commit 74a9bb761a
+5
View 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;