Fix memcmp() reading out of bounds in the tinc info command.
[tinc] / src / info.c
index 562b5ff..c324df9 100644 (file)
 #include "system.h"
 
 #include "control_common.h"
-#include "list.h"
 #include "subnet.h"
 #include "tincctl.h"
 #include "info.h"
 #include "utils.h"
-#include "xalloc.h"
 
 void logger(int level, int priority, const char *format, ...) {
+       (void)level;
+       (void)priority;
        va_list ap;
+
        va_start(ap, format);
        vfprintf(stderr, format, ap);
        va_end(ap);
+
        fputc('\n', stderr);
 }
 
 char *strip_weight(char *netstr) {
-       int len = strlen(netstr);
+       size_t len = strlen(netstr);
 
        if(len >= 3 && !strcmp(netstr + len - 3, "#10")) {
                netstr[len - 3] = 0;
@@ -295,7 +297,7 @@ static int info_subnet(int fd, const char *item) {
                                        continue;
                                }
 
-                               if(memcmp(&find.net.ipv4.address, &subnet.net.ipv4.address, sizeof(subnet.net.ipv4))) {
+                               if(memcmp(&find.net.ipv4.address, &subnet.net.ipv4.address, sizeof(subnet.net.ipv4.address))) {
                                        continue;
                                }
                        }
@@ -309,14 +311,14 @@ static int info_subnet(int fd, const char *item) {
                                        continue;
                                }
 
-                               if(memcmp(&find.net.ipv6.address, &subnet.net.ipv6.address, sizeof(subnet.net.ipv6))) {
+                               if(memcmp(&find.net.ipv6.address, &subnet.net.ipv6.address, sizeof(subnet.net.ipv6.address))) {
                                        continue;
                                }
                        }
                }
 
                if(find.type == SUBNET_MAC) {
-                       if(memcmp(&find.net.mac.address, &subnet.net.mac.address, sizeof(subnet.net.mac))) {
+                       if(memcmp(&find.net.mac.address, &subnet.net.mac.address, sizeof(subnet.net.mac.address))) {
                                continue;
                        }
                }