Re: [PATCH net-next 3/5] bpftool: implement cgattach command

From: Jakub Kicinski
Date: Thu Nov 30 2017 - 22:14:16 EST


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.