diff options
author | Yoni Divinsky <yoni.divinsky@ti.com> | 2012-01-16 15:18:59 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-01-16 15:01:16 -0500 |
commit | d32a102819eef99d4d87019266bea208447be0a0 (patch) | |
tree | ff6484ac0f843dc48c24db2604bfbef1424967e0 /net/mac80211/tx.c | |
parent | 331d9301ed4d0fe33e9762c62f2870243bcf77eb (diff) | |
download | op-kernel-dev-d32a102819eef99d4d87019266bea208447be0a0.zip op-kernel-dev-d32a102819eef99d4d87019266bea208447be0a0.tar.gz |
mac80211: fix tx->skb NULL pointer dereference
In function ieee80211_tx_h_encrypt the var info was
initialized from tx->skb, since the fucntion
is called after the function ieee80211_tx_h_fragment
tx->skb is not valid anymore.
Signed-off-by: Yoni Divinsky <yoni.divinsky@ti.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/tx.c')
-rw-r--r-- | net/mac80211/tx.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index edcd1c7..e05667c 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1001,8 +1001,6 @@ ieee80211_tx_h_stats(struct ieee80211_tx_data *tx) static ieee80211_tx_result debug_noinline ieee80211_tx_h_encrypt(struct ieee80211_tx_data *tx) { - struct ieee80211_tx_info *info = IEEE80211_SKB_CB(tx->skb); - if (!tx->key) return TX_CONTINUE; @@ -1017,13 +1015,7 @@ ieee80211_tx_h_encrypt(struct ieee80211_tx_data *tx) case WLAN_CIPHER_SUITE_AES_CMAC: return ieee80211_crypto_aes_cmac_encrypt(tx); default: - /* handle hw-only algorithm */ - if (info->control.hw_key) { - ieee80211_tx_set_protected(tx); - return TX_CONTINUE; - } - break; - + return ieee80211_crypto_hw_encrypt(tx); } return TX_DROP; |