Browse 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 14 years ago
parent
commit
35c5d61037
1 changed files with 2 additions and 0 deletions
  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 */