Commit 50b2e871 authored by taozhang's avatar taozhang Committed by Johannes Berg

wifi: mac80211: fix memory free error when registering wiphy fail

ieee80211_register_hw free the allocated cipher suites when
registering wiphy fail, and ieee80211_free_hw will re-free it.

set wiphy_ciphers_allocated to false after freeing allocated
cipher suites.
Signed-off-by: default avatartaozhang <taozhang@bestechnic.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent 03c0ad4b
...@@ -1439,8 +1439,10 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) ...@@ -1439,8 +1439,10 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
ieee80211_led_exit(local); ieee80211_led_exit(local);
destroy_workqueue(local->workqueue); destroy_workqueue(local->workqueue);
fail_workqueue: fail_workqueue:
if (local->wiphy_ciphers_allocated) if (local->wiphy_ciphers_allocated) {
kfree(local->hw.wiphy->cipher_suites); kfree(local->hw.wiphy->cipher_suites);
local->wiphy_ciphers_allocated = false;
}
kfree(local->int_scan_req); kfree(local->int_scan_req);
return result; return result;
} }
...@@ -1508,8 +1510,10 @@ void ieee80211_free_hw(struct ieee80211_hw *hw) ...@@ -1508,8 +1510,10 @@ void ieee80211_free_hw(struct ieee80211_hw *hw)
mutex_destroy(&local->iflist_mtx); mutex_destroy(&local->iflist_mtx);
mutex_destroy(&local->mtx); mutex_destroy(&local->mtx);
if (local->wiphy_ciphers_allocated) if (local->wiphy_ciphers_allocated) {
kfree(local->hw.wiphy->cipher_suites); kfree(local->hw.wiphy->cipher_suites);
local->wiphy_ciphers_allocated = false;
}
idr_for_each(&local->ack_status_frames, idr_for_each(&local->ack_status_frames,
ieee80211_free_ack_frame, NULL); ieee80211_free_ack_frame, NULL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment