X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=system-linux.c;fp=system-linux.c;h=0b594f67a55f80274b7009494a9843b113a4d843;hp=993320175c6c8db1ece3a049a07d6986b3a70e96;hb=df1625da2dd5fd0496c0c9d92490eba0cb9117f8;hpb=209c5080e6dc64ee676f790eeaa65e204e978fc8 diff --git a/system-linux.c b/system-linux.c index 9933201..0b594f6 100644 --- a/system-linux.c +++ b/system-linux.c @@ -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)); - 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);