From 8513b14196f44ff0ec8a40842413cf829386669b Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Tue, 12 May 2026 22:08:07 -0700 Subject: [PATCH] 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 Link: https://lore.kernel.org/r/20260513050806.do.620-kees@kernel.org Signed-off-by: Alexei Starovoitov --- src/skel_internal.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/skel_internal.h b/src/skel_internal.h index 6a8f5c7..74503d3 100644 --- a/src/skel_internal.h +++ b/src/skel_internal.h @@ -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;