Quit with an error message if ioctl(TUNSETIFF) fails.
authorGuus Sliepen <guus@tinc-vpn.org>
Tue, 19 May 2015 20:26:32 +0000 (22:26 +0200)
committerGuus Sliepen <guus@tinc-vpn.org>
Tue, 19 May 2015 20:26:32 +0000 (22:26 +0200)
It is possible that opening /dev/net/tun works but that interface
creation itself fails, for example if a non-root user tries to create a
new interface, or if the desired interface is already opened by another
process. In this case, the ioctl() fails, but we actually silently
ignored this condition.

src/linux/device.c

index 5717d92..a06e6da 100644 (file)
@@ -101,6 +101,9 @@ static bool setup_device(void) {
                strncpy(ifrname, ifr.ifr_name, IFNAMSIZ);
                free(iface);
                iface = xstrdup(ifrname);
+       } else {
+               logger(DEBUG_ALWAYS, LOG_ERR, "Could not create a tun/tap interface from %s: %s", device, strerror(errno));
+               return false;
        }
 
        logger(DEBUG_ALWAYS, LOG_INFO, "%s is a %s", device, device_info);