diff --git a/TAP.c b/TAP.c index 8525060..b5689e4 100644 --- a/TAP.c +++ b/TAP.c @@ -317,13 +317,14 @@ int open_tap(void) { cleanup(); exit(1); } - + // Firstly, obtain the interface index by `ifr_name` int dummySock = socket(AF_INET6, SOCK_DGRAM, 0); if(ioctl(dummySock, SIOCGIFINDEX, &ifr) < 0) { printf("Could not get interface index for interface '%s'\n", ifr.ifr_name); close(dummySock); + cleanup(); exit(1); } @@ -336,6 +337,7 @@ int open_tap(void) { { perror("No prefix length was provided"); // TODO: Move logic into arg parsing close(dummySock); + cleanup(); exit(1); } printf("prefix part: %s\n", prefixPart_s); @@ -351,6 +353,7 @@ int open_tap(void) { { printf("Error parsing IPv6 address '%s'", ipv6_addr); close(dummySock); + cleanup(); exit(1); }