diff options
author | sam <sam@FreeBSD.org> | 2007-11-08 17:11:40 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-11-08 17:11:40 +0000 |
commit | 2543bc560678aa66522103e533df6fea857502d1 (patch) | |
tree | 39597d1430d572100c7c4cafcb179026c655eb5b /sys/net80211 | |
parent | 3a40a5ed4b786bf73f078c9fe24b319789a2c8a6 (diff) | |
download | FreeBSD-src-2543bc560678aa66522103e533df6fea857502d1.zip FreeBSD-src-2543bc560678aa66522103e533df6fea857502d1.tar.gz |
correct termination check doing amsdu de-aggregation
MFC after: 3 days
Diffstat (limited to 'sys/net80211')
-rw-r--r-- | sys/net80211/ieee80211_ht.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/net80211/ieee80211_ht.c b/sys/net80211/ieee80211_ht.c index 0a8341a..1cca85c1 100644 --- a/sys/net80211/ieee80211_ht.c +++ b/sys/net80211/ieee80211_ht.c @@ -205,7 +205,7 @@ struct mbuf * ieee80211_decap_amsdu(struct ieee80211_node *ni, struct mbuf *m) { struct ieee80211com *ic = ni->ni_ic; - int totallen, framelen; + int framelen; struct mbuf *n; /* discard 802.3 header inserted by ieee80211_decap */ @@ -213,7 +213,6 @@ ieee80211_decap_amsdu(struct ieee80211_node *ni, struct mbuf *m) ic->ic_stats.is_amsdu_decap++; - totallen = m->m_pkthdr.len; for (;;) { /* * Decap the first frame, bust it apart from the @@ -224,11 +223,11 @@ ieee80211_decap_amsdu(struct ieee80211_node *ni, struct mbuf *m) m = ieee80211_decap1(m, &framelen); if (m == NULL) { IEEE80211_DISCARD_MAC(ic, IEEE80211_MSG_ANY, - ni->ni_macaddr, "a-msdu", "%s", "first decap failed"); + ni->ni_macaddr, "a-msdu", "%s", "decap failed"); ic->ic_stats.is_amsdu_tooshort++; return NULL; } - if (framelen == totallen) + if (m->m_pkthdr.len == framelen) break; n = m_split(m, framelen, M_NOWAIT); if (n == NULL) { |