]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Use thread-safe function pointer in libbpf_print
authorJonathan Wiepert <jonathan.wiepert@gmail.com>
Thu, 24 Apr 2025 22:14:57 +0000 (18:14 -0400)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 25 Apr 2025 16:27:17 +0000 (09:27 -0700)
This patch fixes a thread safety bug where libbpf_print uses the
global variable storing the print function pointer rather than the local
variable that had the print function set via __atomic_load_n.

Fixes: f1cb927cdb62 ("libbpf: Ensure print callback usage is thread-safe")
Signed-off-by: Jonathan Wiepert <jonathan.wiepert@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Mykyta Yatsenko <mykyta.yatsenko5@gmail.com>
Link: https://lore.kernel.org/bpf/20250424221457.793068-1-jonathan.wiepert@gmail.com
tools/lib/bpf/libbpf.c

index 080c699582c79b1a4da78fb0c94f80de55acbee3..617cfb9a7ff5055c498775a99963359929373dbc 100644 (file)
@@ -286,7 +286,7 @@ void libbpf_print(enum libbpf_print_level level, const char *format, ...)
        old_errno = errno;
 
        va_start(args, format);
-       __libbpf_pr(level, format, args);
+       print_fn(level, format, args);
        va_end(args);
 
        errno = old_errno;