From 789e6a2d2af5eedb9003233d594f55aff6c59b20 Mon Sep 17 00:00:00 2001 From: Jakob Olsson <jakobols@kth.se> Date: Mon, 11 Jun 2018 15:26:38 +0200 Subject: [PATCH] main culprit of memory leaks --- dongle.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/dongle.c b/dongle.c index a02669d..4580550 100644 --- a/dongle.c +++ b/dongle.c @@ -228,7 +228,7 @@ void free_device(struct device *dev) free(dev->ip); free_usb(&(dev->usb)); - free(&(dev->usb)); + //free(&(dev->usb)); } void free_usb(struct USB *usb) @@ -551,9 +551,14 @@ char *get_device_ip(char *device_name) continue; host_flag = atoi(flags) & 4; - if (!host_flag) + if (!host_flag) { + free(route); + free(iface); + free(destination); + free(gateway); + free(flags); continue; - + } ipv4_addr = (char *)calloc(1, IPV4_MAX); if (!ipv4_addr) break; @@ -561,8 +566,8 @@ char *get_device_ip(char *device_name) addr.s_addr = strtoul(destination, NULL, IPV4_MAX); inet_ntop(AF_INET, &(addr.s_addr), ipv4_addr, IPV4_MAX); //printf("ipv4_addr %s\n", ipv4_addr); - } + } free(route); free(iface); free(destination); -- GitLab