mac80211: fix queue selection for data frames on monitor interfaces
authorFelix Fietkau <nbd@openwrt.org>
Mon, 11 Jan 2010 05:47:00 +0000 (06:47 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 12 Jan 2010 00:37:09 +0000 (19:37 -0500)
commit193e70ef65a6c33f2935ce1f4adeb08ecb9202cf
treef079d1fe437bb9cd1f69ace985114e074c65a023
parent39825f4dc9f4e409e8ea43ef4df04a924699ad1f
mac80211: fix queue selection for data frames on monitor interfaces

When ieee80211_monitor_select_queue encounters data frames, it selects
the WMM AC based on skb->priority and assumes that skb->priority
contains a valid 802.1d tag. However this assumption is incorrect, since
ieee80211_select_queue has not been called at this point.
If skb->priority > 7, an array overrun occurs, which could lead to
invalid values, resulting in crashes in the tx path.
Fix this by setting skb->priority based on the 802.11 header for QoS
frames and using the default AC for all non-QoS frames.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/iface.c