Prechádzať zdrojové kódy

Merge branch 'bugfix/btm_scan_done_crash' into 'master'

wpa_supplicant : Fix race condition in BTM scan

Closes WIFI-5838

See merge request espressif/esp-idf!23775
Jiang Jiang Jian 2 rokov pred
rodič
commit
12306efc19

+ 8 - 1
components/wpa_supplicant/esp_supplicant/src/esp_scan.c

@@ -21,6 +21,7 @@
 #include "esp_scan_i.h"
 #include "common/wnm_sta.h"
 #include "esp_scan_i.h"
+#include "esp_common_i.h"
 
 extern struct wpa_supplicant g_wpa_supp;
 
@@ -34,7 +35,13 @@ static void scan_done_event_handler(void *arg, ETS_STATUS status)
 		wpa_s->type &= ~(1 << WLAN_FC_STYPE_BEACON) & ~(1 << WLAN_FC_STYPE_PROBE_RESP);
 		esp_wifi_register_mgmt_frame_internal(wpa_s->type, wpa_s->subtype);
 	}
-	esp_supplicant_handle_scan_done_evt();
+#ifdef CONFIG_SUPPLICANT_TASK
+	if (esp_supplicant_post_evt(SIG_SUPPLICANT_SCAN_DONE, 0) != 0) {
+		wpa_printf(MSG_ERROR, "Posting of scan done failed!");
+	}
+#else
+       esp_supplicant_handle_scan_done_evt();
+#endif /*CONFIG_SUPPLICANT_TASK*/
 }
 
 #if defined(CONFIG_IEEE80211KV)