Re: [PATCH bpf] tools: bpftool: Add missing close before bpftool net attach exit

From: John Fastabend
Date: Mon Nov 09 2020 - 16:38:00 EST


Michal Rostecki wrote:
> On 11/9/20 8:04 AM, 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@xxxxxxxxxx>
> > ---
> > tools/bpf/bpftool/net.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/tools/bpf/bpftool/net.c b/tools/bpf/bpftool/net.c
> > index 910e7bac6e9e..3e9b40e64fb0 100644
> > --- a/tools/bpf/bpftool/net.c
> > +++ b/tools/bpf/bpftool/net.c
> > @@ -600,12 +600,14 @@ static int do_attach(int argc, char **argv)
> > if (err < 0) {
> > p_err("interface %s attach failed: %s",
> > attach_type_strings[attach_type], strerror(-err));
> > + close(progfd);
> > return err;
> > }
> >
> > if (json_output)
> > jsonw_null(json_wtr);
> >
> > + close(progfd);
> > return 0;
> > }
> >
>
> Nit - wouldn't it be better to create a `cleanup`/`out` section before
> return and use goto, to avoid copying the `close` call?

I agree would be nicer.