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.