]> git.sur5r.net Git - i3/i3status/commitdiff
Fix memory leak/Use BEGINS_WITH macro
authorFabian Franzen <fabian.franzen@tum.de>
Wed, 12 Apr 2017 11:11:34 +0000 (13:11 +0200)
committerFabian Franzen <fabian.franzen@tum.de>
Wed, 12 Apr 2017 11:11:34 +0000 (13:11 +0200)
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.

src/first_network_device.c

index abbc9b004141b1722292e1f013f41cbf566acb56..656e457ca54285687ee871c78198006ccf611e90 100644 (file)
@@ -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) {