diff options
author | Stefan Sperling <stsp@cvs.openbsd.org> | 2017-01-16 09:35:44 +0000 |
---|---|---|
committer | Stefan Sperling <stsp@cvs.openbsd.org> | 2017-01-16 09:35:44 +0000 |
commit | ad74cec1eb21a998df1e5915f56e7c16a22eed49 (patch) | |
tree | a51c20ddcb0b60ae4d1f433f0fa9a9b6a93525bb | |
parent | 97ac971e60f365441722d613ac97db7e6f32ce9e (diff) |
Reset block ack state and cancel related timeouts when a HT node disassociates.
The existing code (from damien@) already took care of freeing related buffers
but because block ack state was not reset we were still trying to use these
buffers if the node sent another A-MPDU. This problem only affects 11n hostap.
Fixes kernel crash reported by Timo Myyra on bugs@
-rw-r--r-- | sys/net80211/ieee80211_node.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c index 1d5c75f6176..af318f1ee89 100644 --- a/sys/net80211/ieee80211_node.c +++ b/sys/net80211/ieee80211_node.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ieee80211_node.c,v 1.111 2017/01/09 20:18:59 stsp Exp $ */ +/* $OpenBSD: ieee80211_node.c,v 1.112 2017/01/16 09:35:43 stsp Exp $ */ /* $NetBSD: ieee80211_node.c,v 1.14 2004/05/09 09:18:47 dyoung Exp $ */ /*- @@ -1638,6 +1638,7 @@ ieee80211_node_leave_ht(struct ieee80211com *ic, struct ieee80211_node *ni) int i; /* free all Block Ack records */ + ieee80211_ba_del(ni); for (tid = 0; tid < IEEE80211_NUM_TID; tid++) { ba = &ni->ni_rx_ba[tid]; if (ba->ba_buf != NULL) { |