| From bc832065b60f973771ff3e657214bb21b559833c Mon Sep 17 00:00:00 2001 |
| From: Gu Shengxian <gushengxian@yulong.com> |
| Date: Mon, 5 Jul 2021 18:35:43 -0700 |
| Subject: bpftool: Properly close va_list 'ap' by va_end() on error |
| |
| From: Gu Shengxian <gushengxian@yulong.com> |
| |
| commit bc832065b60f973771ff3e657214bb21b559833c upstream. |
| |
| va_list 'ap' was opened but not closed by va_end() in error case. It should |
| be closed by va_end() before the return. |
| |
| Fixes: aa52bcbe0e72 ("tools: bpftool: Fix json dump crash on powerpc") |
| Signed-off-by: Gu Shengxian <gushengxian@yulong.com> |
| Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> |
| Cc: Jiri Olsa <jolsa@redhat.com> |
| Link: https://lore.kernel.org/bpf/20210706013543.671114-1-gushengxian507419@gmail.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| tools/bpf/bpftool/jit_disasm.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/tools/bpf/bpftool/jit_disasm.c |
| +++ b/tools/bpf/bpftool/jit_disasm.c |
| @@ -51,11 +51,13 @@ static int fprintf_json(void *out, const |
| { |
| va_list ap; |
| char *s; |
| + int err; |
| |
| va_start(ap, fmt); |
| - if (vasprintf(&s, fmt, ap) < 0) |
| - return -1; |
| + err = vasprintf(&s, fmt, ap); |
| va_end(ap); |
| + if (err < 0) |
| + return -1; |
| |
| if (!oper_count) { |
| int i; |