diff options
author | Quentin Monnet <quentin.monnet@netronome.com> | 2017-11-29 04:44:29 +0300 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2017-11-30 04:09:29 +0300 |
commit | 7868620a3c15dbc661fb5d849de403ac04624c50 (patch) | |
tree | 3f70a2a36787da1f70f04e44c974c72ab22a07ad /tools/bpf/bpftool/main.c | |
parent | 9b85c2d4508563f4bb1de0d971ed02fea0d0d757 (diff) | |
download | linux-7868620a3c15dbc661fb5d849de403ac04624c50.tar.xz |
tools: bpftool: clean up the JSON writer before exiting in usage()
The writer is cleaned at the end of the main function, but not if the
program exits sooner in usage(). Let's keep it clean and destroy the
writer before exiting.
Destruction and actual call to exit() are moved to another function so
that clean exit can also be performed without printing usage() hints.
Fixes: d35efba99d92 ("tools: bpftool: introduce --json and --pretty options")
Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com>
Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/bpf/bpftool/main.c')
-rw-r--r-- | tools/bpf/bpftool/main.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/tools/bpf/bpftool/main.c b/tools/bpf/bpftool/main.c index 14ad54a1c404..d72dd73a4016 100644 --- a/tools/bpf/bpftool/main.c +++ b/tools/bpf/bpftool/main.c @@ -58,11 +58,19 @@ bool show_pinned; struct pinned_obj_table prog_table; struct pinned_obj_table map_table; +static void __noreturn clean_and_exit(int i) +{ + if (json_output) + jsonw_destroy(&json_wtr); + + exit(i); +} + void usage(void) { last_do_help(last_argc - 1, last_argv + 1); - exit(-1); + clean_and_exit(-1); } static int do_help(int argc, char **argv) |