aboutgitcodebugslistschat
diff options
context:
space:
mode:
-rw-r--r--tap.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/tap.c b/tap.c
index e4dd804..8310891 100644
--- a/tap.c
+++ b/tap.c
@@ -899,8 +899,11 @@ static int tap_ns_tun(void *arg)
if (ns_enter(c) ||
(tun_ns_fd = open("/dev/net/tun", flags)) < 0 ||
ioctl(tun_ns_fd, TUNSETIFF, &ifr) ||
- !(c->pasta_ifi = if_nametoindex(c->pasta_ifn)))
+ !(c->pasta_ifi = if_nametoindex(c->pasta_ifn))) {
+ if (tun_ns_fd != -1)
+ close(tun_ns_fd);
tun_ns_fd = -1;
+ }
return 0;
}