madwifi: make code a little bit clearer
authorRuben Kerkhof <ruben@rubenkerkhof.com>
Fri, 4 Dec 2015 20:03:44 +0000 (21:03 +0100)
committerFlorian Forster <octo@collectd.org>
Sat, 5 Dec 2015 19:40:32 +0000 (20:40 +0100)
buf2 is initialized to zero, readlink
will write at most sizeof(buf2) -1 bytes,
so the trailing null should not be overwritten.

Coverity doesn't see that, rewrite the code
differently so it does.

CID #38027

Signed-off-by: Florian Forster <octo@collectd.org>
src/madwifi.c

index 13301ff..7987378 100644 (file)
@@ -821,15 +821,16 @@ check_devname (const char *dev)
 
        if (dev[0] == '.')
                return 0;
-       
+
        ssnprintf (buf, sizeof (buf), "/sys/class/net/%s/device/driver", dev);
-       buf[sizeof (buf) - 1] = 0;
+       buf[sizeof (buf) - 1] = '\0';
 
-       memset (buf2, 0, sizeof (buf2));
        i = readlink (buf, buf2, sizeof (buf2) - 1);
        if (i < 0)
                return 0;
 
+       buf2[i] = '\0';
+
        if (strstr (buf2, "/drivers/ath_") == NULL)
                return 0;
        return 1;