Messages in this thread | | | Subject | Re: [PATCH v3 bpf] tools: bpftool: Add missing close before bpftool net attach exit | From | Michal Rostecki <> | Date | Wed, 11 Nov 2020 15:43:44 +0100 |
| |
On 11/11/20 2:54 PM, Wang Hai wrote: > progfd is created by prog_parse_fd(), before 'bpftool net attach' exit, > it should be closed. > > Fixes: 04949ccc273e ("tools: bpftool: add net attach command to attach XDP on interface") > Signed-off-by: Wang Hai <wanghai38@huawei.com> > --- > v2->v3: add 'err = 0' before successful return > v1->v2: use cleanup tag instead of repeated closes > tools/bpf/bpftool/net.c | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/tools/bpf/bpftool/net.c b/tools/bpf/bpftool/net.c > index 910e7bac6e9e..f927392271cc 100644 > --- a/tools/bpf/bpftool/net.c > +++ b/tools/bpf/bpftool/net.c > @@ -578,8 +578,8 @@ static int do_attach(int argc, char **argv) > > ifindex = net_parse_dev(&argc, &argv); > if (ifindex < 1) { > - close(progfd); > - return -EINVAL; > + err = -EINVAL; > + goto cleanup; > } > > if (argc) { > @@ -587,8 +587,8 @@ static int do_attach(int argc, char **argv) > overwrite = true; > } else { > p_err("expected 'overwrite', got: '%s'?", *argv); > - close(progfd); > - return -EINVAL; > + err = -EINVAL; > + goto cleanup; > } > } > > @@ -597,16 +597,20 @@ static int do_attach(int argc, char **argv) > err = do_attach_detach_xdp(progfd, attach_type, ifindex, > overwrite); > > - if (err < 0) { > + if (err) { > p_err("interface %s attach failed: %s", > attach_type_strings[attach_type], strerror(-err)); > - return err; > + goto cleanup; > } > > if (json_output) > jsonw_null(json_wtr); > > - return 0; > + err = 0; > + > +cleanup: > + close(progfd); > + return err; > } > > static int do_detach(int argc, char **argv) >
LGTM, thanks!
Reviewed-By: Michal Rostecki <mrostecki@opensuse.org>
| |