diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2012-02-02 14:06:16 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2012-02-02 14:06:16 +0000 |
commit | 33e4461db68ad3adc10ff3f497b9430763d0a1a1 (patch) | |
tree | 2812ebdd834ea8342bf6b5166cf8dcc9e00751b4 /package/iwinfo | |
parent | eca9950f63ec4491a7bd6138174ac08595184e1b (diff) | |
download | upstream-33e4461db68ad3adc10ff3f497b9430763d0a1a1.tar.gz upstream-33e4461db68ad3adc10ff3f497b9430763d0a1a1.tar.bz2 upstream-33e4461db68ad3adc10ff3f497b9430763d0a1a1.zip |
iwinfo: fix segmentation fault when doing two consecutive scans through wpa_supplicant Based on patch by Christian Kapeller <christian.kapeller@cmotion.eu> with one minor whitespace change and updated package version.
SVN-Revision: 29992
Diffstat (limited to 'package/iwinfo')
-rw-r--r-- | package/iwinfo/Makefile | 2 | ||||
-rw-r--r-- | package/iwinfo/src/iwinfo_nl80211.c | 11 |
2 files changed, 8 insertions, 5 deletions
diff --git a/package/iwinfo/Makefile b/package/iwinfo/Makefile index dae7470154..4f6bc1d363 100644 --- a/package/iwinfo/Makefile +++ b/package/iwinfo/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libiwinfo -PKG_RELEASE:=23 +PKG_RELEASE:=24 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) PKG_CONFIG_DEPENDS := \ diff --git a/package/iwinfo/src/iwinfo_nl80211.c b/package/iwinfo/src/iwinfo_nl80211.c index 4f3390fdbb..e8cfb902f0 100644 --- a/package/iwinfo/src/iwinfo_nl80211.c +++ b/package/iwinfo/src/iwinfo_nl80211.c @@ -387,10 +387,13 @@ static char * nl80211_wpactl_info(const char *ifname, const char *cmd, goto out; - send(sock, "ATTACH", 6, 0); + if (event) + { + send(sock, "ATTACH", 6, 0); - if (nl80211_wpactl_recv(sock, buffer, sizeof(buffer)) <= 0) - goto out; + if (nl80211_wpactl_recv(sock, buffer, sizeof(buffer)) <= 0) + goto out; + } send(sock, cmd, strlen(cmd), 0); @@ -405,7 +408,7 @@ static char * nl80211_wpactl_info(const char *ifname, const char *cmd, break; } - if ((!event && buffer[0] != '<') || strstr(buffer, event)) + if ((!event && buffer[0] != '<') || (event && strstr(buffer, event))) break; } |