diff mbox series

[bpf-next,v2,2/2] selftests/bpf: Close netns in error paths in test_tunnel

Message ID cf6b9ac760c91d58078243e27be31ef811308296.1718072698.git.tanggeliang@kylinos.cn (mailing list archive)
State New
Headers show
Series Enable INET_XFRM_TUNNEL in config | expand

Commit Message

Geliang Tang June 11, 2024, 2:27 a.m. UTC
From: Geliang Tang <tanggeliang@kylinos.cn>

netns created by open_netns() should be closed in error paths in
test_vxlan_tunnel(), test_ip6vxlan_tunnel() and test_ipip_tunnel().

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
 .../selftests/bpf/prog_tests/test_tunnel.c    | 27 +++++++++++++------
 1 file changed, 19 insertions(+), 8 deletions(-)
diff mbox series

Patch

diff --git a/tools/testing/selftests/bpf/prog_tests/test_tunnel.c b/tools/testing/selftests/bpf/prog_tests/test_tunnel.c
index cec746e77cd3..f19e8177bcec 100644
--- a/tools/testing/selftests/bpf/prog_tests/test_tunnel.c
+++ b/tools/testing/selftests/bpf/prog_tests/test_tunnel.c
@@ -448,14 +448,20 @@  static void test_vxlan_tunnel(void)
 	if (!ASSERT_OK_PTR(nstoken, "setns src"))
 		goto done;
 	ifindex = if_nametoindex(VXLAN_TUNL_DEV0);
-	if (!ASSERT_NEQ(ifindex, 0, "vxlan00 ifindex"))
+	if (!ASSERT_NEQ(ifindex, 0, "vxlan00 ifindex")) {
+		close_netns(nstoken);
 		goto done;
+	}
 	tc_hook.ifindex = ifindex;
 	set_dst_prog_fd = bpf_program__fd(skel->progs.vxlan_set_tunnel_dst);
-	if (!ASSERT_GE(set_dst_prog_fd, 0, "bpf_program__fd"))
+	if (!ASSERT_GE(set_dst_prog_fd, 0, "bpf_program__fd")) {
+		close_netns(nstoken);
 		goto done;
-	if (attach_tc_prog(&tc_hook, -1, set_dst_prog_fd))
+	}
+	if (attach_tc_prog(&tc_hook, -1, set_dst_prog_fd)) {
+		close_netns(nstoken);
 		goto done;
+	}
 	close_netns(nstoken);
 
 	/* use veth1 ip 2 as tunnel source ip */
@@ -521,14 +527,20 @@  static void test_ip6vxlan_tunnel(void)
 	if (!ASSERT_OK_PTR(nstoken, "setns src"))
 		goto done;
 	ifindex = if_nametoindex(IP6VXLAN_TUNL_DEV0);
-	if (!ASSERT_NEQ(ifindex, 0, "ip6vxlan00 ifindex"))
+	if (!ASSERT_NEQ(ifindex, 0, "ip6vxlan00 ifindex")) {
+		close_netns(nstoken);
 		goto done;
+	}
 	tc_hook.ifindex = ifindex;
 	set_dst_prog_fd = bpf_program__fd(skel->progs.ip6vxlan_set_tunnel_dst);
-	if (!ASSERT_GE(set_dst_prog_fd, 0, "bpf_program__fd"))
+	if (!ASSERT_GE(set_dst_prog_fd, 0, "bpf_program__fd")) {
+		close_netns(nstoken);
 		goto done;
-	if (attach_tc_prog(&tc_hook, -1, set_dst_prog_fd))
+	}
+	if (attach_tc_prog(&tc_hook, -1, set_dst_prog_fd)) {
+		close_netns(nstoken);
 		goto done;
+	}
 	close_netns(nstoken);
 
 	/* use veth1 ip 2 as tunnel source ip */
@@ -615,8 +627,7 @@  static void test_ipip_tunnel(enum ipip_encap encap)
 	if (!ASSERT_OK_PTR(nstoken, "setns"))
 		goto done;
 	err = test_ping(AF_INET, IP4_ADDR_TUNL_DEV1);
-	if (!ASSERT_OK(err, "test_ping"))
-		goto done;
+	ASSERT_OK(err, "test_ping");
 	close_netns(nstoken);
 
 done: