Consistently allocate device and iface variables on the heap.
[tinc] / src / raw_socket / device.c
index 33857ba..b96f06f 100644 (file)
 #include "logger.h"
 #include "utils.h"
 #include "route.h"
+#include "xalloc.h"
 
 int device_fd = -1;
 char *device;
 char *iface;
-char ifrname[IFNAMSIZ];
-char *device_info;
+static char ifrname[IFNAMSIZ];
+static char *device_info;
 
 static int device_total_in = 0;
 static int device_total_out = 0;
@@ -46,12 +47,11 @@ bool setup_device(void)
 
        cp();
 
-       if(!get_config_string
-                 (lookup_config(config_tree, "Interface"), &iface))
-               iface = "eth0";
+       if(!get_config_string(lookup_config(config_tree, "Interface"), &iface))
+               iface = xstrdup("eth0");
 
        if(!get_config_string(lookup_config(config_tree, "Device"), &device))
-               device = iface;
+               device = xstrdup(iface);
 
        device_info = _("raw socket");