diff options
Diffstat (limited to 'tools/bpf/bpftool/net.c')
| -rw-r--r-- | tools/bpf/bpftool/net.c | 18 | 
1 files changed, 9 insertions, 9 deletions
| diff --git a/tools/bpf/bpftool/net.c b/tools/bpf/bpftool/net.c index 910e7bac6e9e..3fae61ef6339 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;  		}  	} @@ -596,17 +596,17 @@ static int do_attach(int argc, char **argv)  	if (is_prefix("xdp", attach_type_strings[attach_type]))  		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; +cleanup: +	close(progfd); +	return err;  }  static int do_detach(int argc, char **argv) | 
