aboutsummaryrefslogtreecommitdiffstats
path: root/tools/bpf/bpftool/prog.c
diff options
context:
space:
mode:
authorJakub Kicinski <jakub.kicinski@netronome.com>2018-06-20 14:42:46 -0400
committerDaniel Borkmann <daniel@iogearbox.net>2018-06-21 17:07:13 -0400
commitbfee71fb7376081349117fdc89f685a9e14a58c2 (patch)
treef8f65c36f80791edb98c219fa98f24c904d28741 /tools/bpf/bpftool/prog.c
parent957f9a13df6c70aac31a1dade5e417c286d6d258 (diff)
tools: bpftool: remember to close the libbpf object after prog load
Remembering to close all descriptors and free memory may not seem important in a user space tool like bpftool, but if we were to run in batch mode the consumed resources start to add up quickly. Make sure program load closes the libbpf object (which unloads and frees it). Fixes: 49a086c201a9 ("bpftool: implement prog load command") Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com> Acked-by: Song Liu <songliubraving@fb.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/bpf/bpftool/prog.c')
-rw-r--r--tools/bpf/bpftool/prog.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
index 12b694fe0404..959aa53ab678 100644
--- a/tools/bpf/bpftool/prog.c
+++ b/tools/bpf/bpftool/prog.c
@@ -695,12 +695,18 @@ static int do_load(int argc, char **argv)
695 } 695 }
696 696
697 if (do_pin_fd(prog_fd, argv[1])) 697 if (do_pin_fd(prog_fd, argv[1]))
698 return -1; 698 goto err_close_obj;
699 699
700 if (json_output) 700 if (json_output)
701 jsonw_null(json_wtr); 701 jsonw_null(json_wtr);
702 702
703 bpf_object__close(obj);
704
703 return 0; 705 return 0;
706
707err_close_obj:
708 bpf_object__close(obj);
709 return -1;
704} 710}
705 711
706static int do_help(int argc, char **argv) 712static int do_help(int argc, char **argv)