mac80211: fix read outside array bounds
authorChristian Lamparter <chunkeey@googlemail.com>
Sat, 7 Jul 2012 13:07:13 +0000 (15:07 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 10 Jul 2012 15:42:52 +0000 (11:42 -0400)
ieee802_1d_to_ac is defined as a const int[8],
but the tid parameter has a range from 0 to 15.

Cc: stable@vger.kernel.org
Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/tx.c

index e453212fa17f741bc380b2cbdabe59ee4f6df5d7..85cf32d2f7b50084ca4f0d7476125e1fe72741cc 100644 (file)
@@ -2733,7 +2733,7 @@ EXPORT_SYMBOL(ieee80211_get_buffered_bc);
 void ieee80211_tx_skb_tid(struct ieee80211_sub_if_data *sdata,
                          struct sk_buff *skb, int tid)
 {
-       int ac = ieee802_1d_to_ac[tid];
+       int ac = ieee802_1d_to_ac[tid & 7];
 
        skb_set_mac_header(skb, 0);
        skb_set_network_header(skb, 0);