diff options
| author | Ingo Bürk | 2017-02-07 20:47:06 +0100 | 
|---|---|---|
| committer | GitHub | 2017-02-07 20:47:06 +0100 | 
| commit | 37e73e77b0514993cd386a5d12509c88dddba5ed (patch) | |
| tree | e4a9b18d1ec3822a7b77e056dce45d72ea0e3c3f | |
| parent | Merge pull request #201 from jasperla/openbsd_bat_info (diff) | |
| parent | Plug an fd leak in the OpenBSD-specific code for _first_ (diff) | |
Merge pull request #202 from jasperla/openbsd_fdleak
Plug an fd leak in the OpenBSD-specific code for _first_
| -rw-r--r-- | src/first_network_device.c | 13 | 
1 files changed, 8 insertions, 5 deletions
| diff --git a/src/first_network_device.c b/src/first_network_device.c index 4e68006..5932385 100644 --- a/src/first_network_device.c +++ b/src/first_network_device.c @@ -94,18 +94,21 @@ static net_type_t iface_type(const char *ifname) {      strlcpy(bssid.i_name, ifname, sizeof(bssid.i_name));      ibssid = ioctl(s, SIOCG80211BSSID, &bssid); -    if (ibssid == 0 || inwid == 0) +    if (ibssid == 0 || inwid == 0) { +        close(s);          return NET_TYPE_WIRELESS; +    }      (void)memset(&ifmr, 0, sizeof(ifmr));      (void)strlcpy(ifmr.ifm_name, ifname, sizeof(ifmr.ifm_name)); -    if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) +    if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) { +        close(s);          return NET_TYPE_OTHER; -    else +    } else { +        close(s);          return NET_TYPE_ETHERNET; - -    close(s); +    }  #else  #error Missing implementation to determine interface type.  #endif | 
