pud: fix socket error
authorFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 22 Oct 2012 10:19:25 +0000 (12:19 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 22 Oct 2012 11:55:39 +0000 (13:55 +0200)
Coverity:
CID 739662 (#2 of 2): Argument cannot be negative (NEGATIVE_RETURNS)
At (9): "fd" is passed to a parameter that cannot be negative.

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/pud/src/netTools.c

index 686f116..def580e 100644 (file)
@@ -7,6 +7,8 @@
 
 /* System includes */
 #include <sys/ioctl.h>
+#include <errno.h>
+#include <string.h>
 
 /**
  Get the hardware address (MAC) of an interface
@@ -33,6 +35,10 @@ unsigned char * getHardwareAddress(const char * ifName, int family,
        assert(ifr != NULL);
 
        fd = socket(family, SOCK_DGRAM, 0);
+       if (fd < 0) {
+               pudError(true, "%s@%u: socket error: %s", __FILE__, __LINE__, strerror(errno));
+               return NULL;
+       }
 
        ifr->ifr_addr.sa_family = family;
        memset(ifr->ifr_name, 0, sizeof(ifr->ifr_name));