close file descriptors and fix return values
Michael Buch michaelbuch12@gmail.com
Wed, 13 Feb 2019 14:16:17 +0000
1 files changed,
12 insertions(+),
6 deletions(-)
jump to
M
components/wifi.c
→
components/wifi.c
@@ -211,14 +211,16 @@ uint8_t bssid[IEEE80211_ADDR_LEN];
int rssi_dbm; int sockfd; size_t len; + const char *fmt; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { warn("socket 'AF_INET':"); - return 0; + return NULL; } /* Retreive MAC address of interface */ len = IEEE80211_ADDR_LEN; + fmt = NULL; if (load_ieee80211req(sockfd, interface, &bssid, IEEE80211_IOC_BSSID, &len)) { /* Retrieve info on station with above BSSID */@@ -229,12 +231,13 @@ len = sizeof(info);
if (load_ieee80211req(sockfd, interface, &info, IEEE80211_IOC_STA_INFO, &len)) { rssi_dbm = info.sta.info[0].isi_noise + info.sta.info[0].isi_rssi / 2; - return bprintf("%d", RSSI_TO_PERC(rssi_dbm)); + + fmt = bprintf("%d", RSSI_TO_PERC(rssi_dbm)); } } close(sockfd); - return NULL; + return fmt; } const char *@@ -243,12 +246,14 @@ {
char ssid[IEEE80211_NWID_LEN + 1]; size_t len; int sockfd; + const char *fmt; if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { warn("socket 'AF_INET':"); - return 0; + return NULL; } + fmt = NULL; len = sizeof(ssid); memset(&ssid, 0, len); if (load_ieee80211req(sockfd, interface, &ssid, IEEE80211_IOC_SSID, &len )) {@@ -258,9 +263,10 @@ else
len = sizeof(ssid); ssid[len - 1] = '\0'; - return bprintf("%s", ssid); + fmt = bprintf("%s", ssid); } - return NULL; + close(sockfd); + return fmt; } #endif