Fix possibly unitialized variable.
[tinc] / src / bsd / device.c
index e3148bd..95e65f9 100644 (file)
@@ -49,9 +49,7 @@ typedef enum device_type {
 #ifdef ENABLE_TUNEMU
        DEVICE_TYPE_TUNEMU,
 #endif
-#ifdef HAVE_NET_IF_UTUN_H
        DEVICE_TYPE_UTUN,
-#endif
 } device_type_t;
 
 int device_fd = -1;
@@ -200,18 +198,19 @@ static bool setup_device(void) {
 
        // Guess what the corresponding interface is called
 
-       char *realname;
+       char *realname = NULL;
 
 #if defined(HAVE_FDEVNAME)
-       realname = fdevname(device_fd) ? : device;
+       realname = fdevname(device_fd);
 #elif defined(HAVE_DEVNAME)
        struct stat buf;
        if(!fstat(device_fd, &buf))
-               realname = devname(buf.st_rdev, S_IFCHR) ? : device;
-#else
-       realname = device;
+               realname = devname(buf.st_rdev, S_IFCHR);
 #endif
 
+       if(!realname)
+               realname = device;
+
        if(!get_config_string(lookup_config(config_tree, "Interface"), &iface))
                iface = xstrdup(strrchr(realname, '/') ? strrchr(realname, '/') + 1 : realname);
        else if(strcmp(iface, strrchr(realname, '/') ? strrchr(realname, '/') + 1 : realname))