]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Fix p2p_connect join scan handler in error cases
authorJouni Malinen <jouni@qca.qualcomm.com>
Fri, 13 Apr 2012 13:13:14 +0000 (16:13 +0300)
committerJouni Malinen <j@w1.fi>
Fri, 13 Apr 2012 13:13:14 +0000 (16:13 +0300)
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>

wpa_supplicant/p2p_supplicant.c

index 6cef40c13e4fb2822521f9347982288ca47195a0..e4f9d9b8517d6448b980c9a39543cc715a1b295e 100644 (file)
@@ -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
         * the new scan results become available.
         */
-       wpa_s->scan_res_handler = wpas_p2p_scan_res_join;
        ret = wpa_drv_scan(wpa_s, &params);
+       if (!ret)
+               wpa_s->scan_res_handler = wpas_p2p_scan_res_join;
 
        wpabuf_free(ies);