| From f7fbf70ee9db6da6033ae50d100e017ac1f26555 Mon Sep 17 00:00:00 2001 |
| From: Javier Cardona <javier@cozybit.com> |
| Date: Thu, 25 Oct 2012 11:10:18 -0700 |
| Subject: mac80211: don't inspect Sequence Control field on control frames |
| |
| From: Javier Cardona <javier@cozybit.com> |
| |
| commit f7fbf70ee9db6da6033ae50d100e017ac1f26555 upstream. |
| |
| Per IEEE Std. 802.11-2012, Sec 8.2.4.4.1, the sequence Control field is |
| not present in control frames. We noticed this problem when processing |
| Block Ack Requests. |
| |
| Signed-off-by: Javier Cardona <javier@cozybit.com> |
| Signed-off-by: Javier Lopez <jlopex@cozybit.com> |
| Signed-off-by: Johannes Berg <johannes.berg@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| net/mac80211/rx.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/net/mac80211/rx.c |
| +++ b/net/mac80211/rx.c |
| @@ -1352,6 +1352,10 @@ ieee80211_rx_h_defragment(struct ieee802 |
| |
| hdr = (struct ieee80211_hdr *)rx->skb->data; |
| fc = hdr->frame_control; |
| + |
| + if (ieee80211_is_ctl(fc)) |
| + return RX_CONTINUE; |
| + |
| sc = le16_to_cpu(hdr->seq_ctrl); |
| frag = sc & IEEE80211_SCTL_FRAG; |
| |