selftests/bpf: Fix segfault in bpf_tcp_ca
Since commit ad9a7f96445b ("libbpf: Improve logging around BPF program loading"), libbpf_debug_print() gets an additional prog_name parameter but doesn't pass it to printf(). Since the format string now expects two arguments, printf() may read uninitialized data and segfault. Pass prog_name through. Fixes: ad9a7f96445b ("libbpf: Improve logging around BPF program loading") Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20211213183058.346066-1-jean-philippe@linaro.org
This commit is contained in:
parent
c8064e5b4a
commit
acd143eefb
@ -217,7 +217,7 @@ static bool found;
|
||||
static int libbpf_debug_print(enum libbpf_print_level level,
|
||||
const char *format, va_list args)
|
||||
{
|
||||
const char *log_buf;
|
||||
const char *prog_name, *log_buf;
|
||||
|
||||
if (level != LIBBPF_WARN ||
|
||||
!strstr(format, "-- BEGIN PROG LOAD LOG --")) {
|
||||
@ -225,15 +225,14 @@ static int libbpf_debug_print(enum libbpf_print_level level,
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* skip prog_name */
|
||||
va_arg(args, char *);
|
||||
prog_name = va_arg(args, char *);
|
||||
log_buf = va_arg(args, char *);
|
||||
if (!log_buf)
|
||||
goto out;
|
||||
if (err_str && strstr(log_buf, err_str) != NULL)
|
||||
found = true;
|
||||
out:
|
||||
printf(format, log_buf);
|
||||
printf(format, prog_name, log_buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user