Fix a few small memory leaks.
[oweals/tinc.git] / src / uml_socket / device.c
index 59551b4f51b1d94a4d15c69d24dbb6babc8710cf..a371e7b439eb1cb1efb0b8199aef2291054032f0 100644 (file)
 #include <sys/un.h>
 
 #include "conf.h"
+#include "device.h"
 #include "net.h"
 #include "logger.h"
 #include "utils.h"
 #include "route.h"
+#include "xalloc.h"
 
 int device_fd = -1;
 static int listen_fd = -1;
@@ -39,7 +41,7 @@ char *iface = NULL;
 static char *device_info;
 
 extern char *identname;
-extern bool running;
+extern volatile bool running;
 
 static uint64_t device_total_in = 0;
 static uint64_t device_total_out = 0;
@@ -174,7 +176,7 @@ bool read_packet(vpn_packet_t *packet) {
        switch(state) {
                case 0: {
                        struct sockaddr sa;
-                       int salen = sizeof sa;
+                       socklen_t salen = sizeof sa;
 
                        request_fd = accept(listen_fd, &sa, &salen);
                        if(request_fd < 0) {
@@ -243,6 +245,10 @@ bool read_packet(vpn_packet_t *packet) {
 
                        return true;
                }
+
+               default:
+                       logger(LOG_ERR, "Invalid value for state variable in " __FILE__);
+                       abort();
        }
 }