P2P: Fix crash when failed to create GO interface aosp-kk-from-upstream
authorVinay Krishna Eranna <c_veran@qti.qualcomm.com>
Tue, 3 Sep 2013 08:17:21 +0000 (11:17 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 3 Sep 2013 09:43:12 +0000 (12:43 +0300)
commitb2b688d18d40cd667d0faa149b4a7172166b3bd4
tree82b3d4b5133bed61713b783ee880f34baccc495e
parentea0e92eef571ba9770362695829f609860160e55
P2P: Fix crash when failed to create GO interface

wpa_supplicant crashes if driver configuration for AP mode interface
configuration fails after group negotiation. This is because of a
regression from commit 1075b2957169d8f9d6dddd7679339c751dc9515b that
ends up freeing the wpa_s instance from within
wpa_supplicant_create_ap() without the caller knowing.

Fix this by using an eloop timeout to free remove the P2P group so that
wpa_supplicant_create_ap() and especially wpa_supplicant_associate()
callers do not need to know about interface getting possibly removed. In
addition, move the P2P specific code into p2p_supplicant.c where it
really belongs. This allows the already existing group formation timeout
to be used by reducing the timeout to zero.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
wpa_supplicant/ap.c
wpa_supplicant/p2p_supplicant.c
wpa_supplicant/p2p_supplicant.h
wpa_supplicant/wpa_supplicant.c