qcacld-3.0: Clear SOFTAP_INIT_DONE when stop adapter

hdd_stop_adapter frees beacon resouce but doesn't clear SOFTAP_INIT_DONE
flag. If SSR happens in this time, NULL pointer dereference will occur.

Clear flag in hdd_stop_adapter and check NULL pointer when use beacon.

Change-Id: I14be81a4e5fb498948f7ceec9138e9b1c797af1e
CRs-Fixed: 2232511
This commit is contained in:
Jiachao Wu 2018-05-21 12:04:15 +08:00 • committed by nshrivas
commit b1e1ddd414
2 changed files with 6 additions and 0 deletions

View file

@ -6852,6 +6852,10 @@ int wlan_hdd_cfg80211_update_apies(struct hdd_adapter *adapter)
pConfig = &adapter->session.ap.sap_config;
beacon = adapter->session.ap.beacon;
if (!beacon) {
hdd_err("Beacon is NULL !");
return -EINVAL;
}
genie = qdf_mem_malloc(MAX_GENIE_LEN);

View file

@ -5130,8 +5130,10 @@ QDF_STATUS hdd_stop_adapter(struct hdd_context *hdd_ctx,
/* Reset WNI_CFG_PROBE_RSP Flags */
wlan_hdd_reset_prob_rspies(adapter);
}
clear_bit(SOFTAP_INIT_DONE, &adapter->event_flags);
qdf_mem_free(adapter->session.ap.beacon);
adapter->session.ap.beacon = NULL;
/*
* If Do_Not_Break_Stream was enabled clear avoid channel list.
*/