P2P: Fix GO start on interface that has active station connection

The active station connection triggered wpa_supplicant AP mode startup
to try to update Beacon IEs before the AP mode was properly initialized
and that resulted in NULL pointer dereference in driver_nl80211.c. Fix
this by skipping the IE update before the AP mode is initialized.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
Jouni Malinen 2011-12-21 13:34:25 +02:00 committed by Jouni Malinen
parent b088cf82c9
commit 72d48a80ec

View file

@ -913,7 +913,9 @@ int wpa_supplicant_ap_update_beacon(struct wpa_supplicant *wpa_s)
struct wpa_ssid *ssid = wpa_s->current_ssid; struct wpa_ssid *ssid = wpa_s->current_ssid;
struct hostapd_data *hapd; struct hostapd_data *hapd;
if (ssid == NULL || wpa_s->ap_iface == NULL) if (ssid == NULL || wpa_s->ap_iface == NULL ||
ssid->mode == WPAS_MODE_INFRA ||
ssid->mode == WPAS_MODE_IBSS)
return -1; return -1;
#ifdef CONFIG_P2P #ifdef CONFIG_P2P
@ -924,8 +926,10 @@ int wpa_supplicant_ap_update_beacon(struct wpa_supplicant *wpa_s)
P2P_GROUP_FORMATION; P2P_GROUP_FORMATION;
#endif /* CONFIG_P2P */ #endif /* CONFIG_P2P */
ieee802_11_set_beacons(iface);
hapd = iface->bss[0]; hapd = iface->bss[0];
if (hapd->drv_priv == NULL)
return -1;
ieee802_11_set_beacons(iface);
hostapd_set_ap_wps_ie(hapd); hostapd_set_ap_wps_ie(hapd);
return 0; return 0;