From: Fabian Franzen Date: Wed, 12 Apr 2017 11:11:34 +0000 (+0200) Subject: Fix memory leak/Use BEGINS_WITH macro X-Git-Tag: 2.12~20^2~1 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=ad3fac03c34ddee7108542d292a09e99f879d3db;p=i3%2Fi3status Fix memory leak/Use BEGINS_WITH macro The orignal proposed code had a memory leak when returning true. Furthermore I included the handy BEGINS_WITH macro of i3 which makes the code (IMHO) a lot more readable. --- diff --git a/src/first_network_device.c b/src/first_network_device.c index abbc9b0..656e457 100644 --- a/src/first_network_device.c +++ b/src/first_network_device.c @@ -53,16 +53,16 @@ static bool sysfs_devtype(char *dest, size_t n, const char *ifnam) { static bool is_virtual(const char *ifname) { char path[1024]; char *target = NULL; - const char virtual_template[] = "/sys/devices/virtual/"; + bool is_virtual = false; snprintf(path, sizeof(path), "/sys/class/net/%s", ifname); if ((target = realpath(path, NULL))) { - if (strncmp(virtual_template, target, strlen(virtual_template)) == 0) - return true; + if (BEGINS_WITH(target, "/sys/devices/virtual/")) + is_virtual = true; } - free(target); - return false; + free(target); + return is_virtual; } static net_type_t iface_type(const char *ifname) {