From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jakub Kicinski Subject: Re: [PATCH net-next 3/5] bpftool: implement cgattach command Date: Thu, 30 Nov 2017 19:13:53 -0800 Message-ID: <20171130191353.3a46ff6e@cakuba.netronome.com> References: <20171130134302.2840-1-guro@fb.com> <20171130134302.2840-4-guro@fb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: , , , , , To: Roman Gushchin Return-path: In-Reply-To: <20171130134302.2840-4-guro@fb.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Thu, 30 Nov 2017 13:43:00 +0000, Roman Gushchin wrote: > + attach_type = parse_attach_type(argv[2]); > + if (attach_type == __MAX_BPF_ATTACH_TYPE) { > + bpf_object__close(obj); > + close(prog_fd); > + close(cgroup_fd); > + p_err("Invalid attach type\n"); > + return -1; > + } > + > + if (bpf_prog_attach(prog_fd, cgroup_fd, attach_type, 0)) { > + bpf_object__close(obj); > + close(prog_fd); > + close(cgroup_fd); > + p_err("Failed to attach program"); > + return -1; > + } > + > + bpf_object__close(obj); > + close(prog_fd); > + close(cgroup_fd); > + > + return 0; > +} Could you try to consolidate the error paths into a one larger handler and use gotos to jump to it? You can see it done in number of places, grep for e.g. exit_free.