Parcourir la source

Fix crash on channel list changed event during driver init

The driver wrapper may indicate EVENT_CHANNEL_LIST_CHANGED before
completing init(). This would likely result in segfault when driver
channel list is being read as part of processing this event when
P2P is enabled.
Jouni Malinen il y a 15 ans
Parent
commit
35c5d61037
1 fichiers modifiés avec 2 ajouts et 0 suppressions
  1. 2 0
      wpa_supplicant/events.c

+ 2 - 0
wpa_supplicant/events.c

@@ -1833,6 +1833,8 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
 		wpa_supplicant_set_state(wpa_s, WPA_INTERFACE_DISABLED);
 		break;
 	case EVENT_CHANNEL_LIST_CHANGED:
+		if (wpa_s->drv_priv == NULL)
+			break; /* Ignore event during drv initialization */
 #ifdef CONFIG_P2P
 		wpas_p2p_update_channel_list(wpa_s);
 #endif /* CONFIG_P2P */