P2P: Fix p2p_connect join scan handler in error cases
wpa_drv_scan() may fail for the initial p2p_connect join scan request, e.g., if the driver happened to be scanning at the time the new operation was initialized. Previously, a special scan result handler was registered regardless of whether the new scan was started. This could result in partial scan results (e.g., from p2p_find social scan) from being used as full results for join (or now more importantly for p2p_connect auto) purposes. Fix this by registering the new scan result handler only if wpa_drv_scan() returns success. Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
b31be3a0fd
commit
205e6474a1
1 changed files with 2 additions and 1 deletions
|
@ -2863,8 +2863,9 @@ static void wpas_p2p_join_scan(void *eloop_ctx, void *timeout_ctx)
|
||||||
* Run a scan to update BSS table and start Provision Discovery once
|
* Run a scan to update BSS table and start Provision Discovery once
|
||||||
* the new scan results become available.
|
* the new scan results become available.
|
||||||
*/
|
*/
|
||||||
wpa_s->scan_res_handler = wpas_p2p_scan_res_join;
|
|
||||||
ret = wpa_drv_scan(wpa_s, ¶ms);
|
ret = wpa_drv_scan(wpa_s, ¶ms);
|
||||||
|
if (!ret)
|
||||||
|
wpa_s->scan_res_handler = wpas_p2p_scan_res_join;
|
||||||
|
|
||||||
wpabuf_free(ies);
|
wpabuf_free(ies);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue