diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c index d1b93eb06..29d900e29 100644 --- a/src/rsn_supp/wpa.c +++ b/src/rsn_supp/wpa.c @@ -1993,8 +1993,8 @@ void wpa_sm_set_config(struct wpa_sm *sm, struct rsn_supp_config *config) if (!sm) return; - sm->network_ctx = config; if (config) { + sm->network_ctx = config->network_ctx; sm->peerkey_enabled = config->peerkey_enabled; sm->allowed_pairwise_cipher = config->allowed_pairwise_cipher; sm->proactive_key_caching = config->proactive_key_caching; @@ -2006,6 +2006,7 @@ void wpa_sm_set_config(struct wpa_sm *sm, struct rsn_supp_config *config) } else sm->ssid_len = 0; } else { + sm->network_ctx = NULL; sm->peerkey_enabled = 0; sm->allowed_pairwise_cipher = 0; sm->proactive_key_caching = 0; diff --git a/wpa_supplicant/wpas_glue.c b/wpa_supplicant/wpas_glue.c index 913de2cea..6efcbdc8c 100644 --- a/wpa_supplicant/wpas_glue.c +++ b/wpa_supplicant/wpas_glue.c @@ -604,6 +604,7 @@ void wpa_supplicant_rsn_supp_set_config(struct wpa_supplicant *wpa_s, struct rsn_supp_config conf; if (ssid) { os_memset(&conf, 0, sizeof(conf)); + conf.network_ctx = ssid; conf.peerkey_enabled = ssid->peerkey; conf.allowed_pairwise_cipher = ssid->pairwise_cipher; #ifdef IEEE8021X_EAPOL