Hi,
When trying to do two consecutive scans from a lua script, a segfault in
libiwinfo.so occurs.
Example:
# lua -l 'iwinfo' -e "iw = iwinfo['nl80211'] ; iw.scanlist('wlan0') ;
iw.scanlist('wlan0');"
Segmentation fault
This patch causes iwinfo to only 'ATTACH' to unsolicited wpa_supplicant events,
when they are
expected.
---
package/iwinfo/src/iwinfo_nl80211.c | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/package/iwinfo/src/iwinfo_nl80211.c
b/package/iwinfo/src/iwinfo_nl80211.c
index 4f3390f..469e415 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;
}
--
1.7.5.4
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel