summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorLarry Finger <Larry.Finger@lwfinger.net>2012-04-06 23:54:17 +0200
committerJohn W. Linville <linville@tuxdriver.com>2012-04-09 21:54:49 +0200
commite89f7690a3adbde0af7c294f83c242ba6a367ef0 (patch)
treeb7d886c9e9f43644f2138b222c213ad5ab670322 /drivers/net/wireless
parentmac80211: Convert WARN_ON to WARN_ON_ONCE (diff)
downloadlinux-e89f7690a3adbde0af7c294f83c242ba6a367ef0.tar.xz
linux-e89f7690a3adbde0af7c294f83c242ba6a367ef0.zip
rtlwifi: Fix oops on rate-control failure
When the rate-control indexing is incorrectly set up, mac80211 issues a warning and returns NULL from the call to ieee80211_get_tx_rate(). When this happens, avoid a NULL pointer dereference. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/rtlwifi/base.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/wireless/rtlwifi/base.c b/drivers/net/wireless/rtlwifi/base.c
index 510023554e5f..e54488db0e10 100644
--- a/drivers/net/wireless/rtlwifi/base.c
+++ b/drivers/net/wireless/rtlwifi/base.c
@@ -838,7 +838,10 @@ void rtl_get_tcb_desc(struct ieee80211_hw *hw,
__le16 fc = hdr->frame_control;
txrate = ieee80211_get_tx_rate(hw, info);
- tcb_desc->hw_rate = txrate->hw_value;
+ if (txrate)
+ tcb_desc->hw_rate = txrate->hw_value;
+ else
+ tcb_desc->hw_rate = 0;
if (ieee80211_is_data(fc)) {
/*