Skip to content

Commit

Permalink
tools: bpftool: clean up the JSON writer before exiting in usage()
Browse files Browse the repository at this point in the history
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: d35efba ("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>
  • Loading branch information
Quentin Monnet authored and Daniel Borkmann committed Nov 30, 2017
1 parent 9b85c2d commit 7868620
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
10 changes: 9 additions & 1 deletion tools/bpf/bpftool/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 2 additions & 1 deletion tools/bpf/bpftool/main.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
#include <stdbool.h>
#include <stdio.h>
#include <linux/bpf.h>
#include <linux/compiler.h>
#include <linux/kernel.h>
#include <linux/hashtable.h>

Expand Down Expand Up @@ -80,7 +81,7 @@ void p_info(const char *fmt, ...);

bool is_prefix(const char *pfx, const char *str);
void fprint_hex(FILE *f, void *arg, unsigned int n, const char *sep);
void usage(void) __attribute__((noreturn));
void usage(void) __noreturn;

struct pinned_obj_table {
DECLARE_HASHTABLE(table, 16);
Expand Down

0 comments on commit 7868620

Please sign in to comment.