forked from luck/tmp_suning_uos_patched
mac80211: Fix local deauth while associating
Local request to deauthenticate wasn't handled while associating, thus the association could continue even when the user space required to disconnect. Cc: stable@vger.kernel.org Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
254d3dfe44
commit
a64cba3c53
|
@ -4936,6 +4936,25 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ifmgd->assoc_data &&
|
||||||
|
ether_addr_equal(ifmgd->assoc_data->bss->bssid, req->bssid)) {
|
||||||
|
sdata_info(sdata,
|
||||||
|
"aborting association with %pM by local choice (Reason: %u=%s)\n",
|
||||||
|
req->bssid, req->reason_code,
|
||||||
|
ieee80211_get_reason_code_string(req->reason_code));
|
||||||
|
|
||||||
|
drv_mgd_prepare_tx(sdata->local, sdata);
|
||||||
|
ieee80211_send_deauth_disassoc(sdata, req->bssid,
|
||||||
|
IEEE80211_STYPE_DEAUTH,
|
||||||
|
req->reason_code, tx,
|
||||||
|
frame_buf);
|
||||||
|
ieee80211_destroy_assoc_data(sdata, false);
|
||||||
|
ieee80211_report_disconnect(sdata, frame_buf,
|
||||||
|
sizeof(frame_buf), true,
|
||||||
|
req->reason_code);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (ifmgd->associated &&
|
if (ifmgd->associated &&
|
||||||
ether_addr_equal(ifmgd->associated->bssid, req->bssid)) {
|
ether_addr_equal(ifmgd->associated->bssid, req->bssid)) {
|
||||||
sdata_info(sdata,
|
sdata_info(sdata,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user