fix(wpa_supplicant) : Fix occasional crash during btm roam.

Fix crash due to premature deallocation of neighbour report elements
by scan_done. Post event to btm_rrm_t task to handle scan_done serially
rather than when btm_rrm_t task is processing btm request rx frame.
pull/12186/head
jgujarathi 2023-05-16 13:49:59 +05:30
rodzic 99279e7a14
commit 8ba3507fa4
1 zmienionych plików z 8 dodań i 1 usunięć

Wyświetl plik

@ -20,6 +20,7 @@
#include "esp_common_i.h"
#include "common/wnm_sta.h"
#include "esp_scan_i.h"
#include "esp_common_i.h"
extern struct wpa_supplicant g_wpa_supp;
@ -33,7 +34,13 @@ static void scan_done_event_handler(void *arg, 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*/
}
static void handle_wnm_scan_done(struct wpa_supplicant *wpa_s)