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 openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel