system-linux: check ioctl return value in system_if_flags()
authorHans Dedecker <dedeckeh@gmail.com>
Sat, 14 Apr 2018 19:15:42 +0000 (21:15 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Sat, 14 Apr 2018 19:17:40 +0000 (21:17 +0200)
Detected by Coverity in CID 1433760

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
system-linux.c

index 9933201..0b594f6 100644 (file)
@@ -781,7 +781,9 @@ static int system_if_flags(const char *ifname, unsigned add, unsigned rem)
 
        memset(&ifr, 0, sizeof(ifr));
        strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
 
        memset(&ifr, 0, sizeof(ifr));
        strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
-       ioctl(sock_ioctl, SIOCGIFFLAGS, &ifr);
+       if (ioctl(sock_ioctl, SIOCGIFFLAGS, &ifr) < 0)
+               return -1;
+
        ifr.ifr_flags |= add;
        ifr.ifr_flags &= ~rem;
        return ioctl(sock_ioctl, SIOCSIFFLAGS, &ifr);
        ifr.ifr_flags |= add;
        ifr.ifr_flags &= ~rem;
        return ioctl(sock_ioctl, SIOCSIFFLAGS, &ifr);