summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Greear <greearb@candelatech.com>2010-10-13 21:01:23 +0200
committerJohn W. Linville <linville@tuxdriver.com>2010-10-13 21:45:23 +0200
commitc23cc81a5e5c1d4486b662cedd0afcdf9145f154 (patch)
tree9b7a1a2b030d5298d1d4967f354bb09ec4e90232
parentmac80211: fix SMPS request (diff)
downloadlinux-c23cc81a5e5c1d4486b662cedd0afcdf9145f154.tar.xz
linux-c23cc81a5e5c1d4486b662cedd0afcdf9145f154.zip
ath9k: Fix potential use-after-free.
The ath_debug_stat_tx references bf->bf_mpdu, which is the skb consumed by ath_tx_complete. So, call the ath_debug_stat_tx method first. Signed-off-by: Ben Greear <greearb@candelatech.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/ath/ath9k/xmit.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
index 9a11099dd86a..9b17108adc7c 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1924,8 +1924,8 @@ static void ath_tx_complete_buf(struct ath_softc *sc, struct ath_buf *bf,
else
complete(&sc->paprd_complete);
} else {
- ath_tx_complete(sc, skb, bf->aphy, tx_flags);
ath_debug_stat_tx(sc, txq, bf, ts);
+ ath_tx_complete(sc, skb, bf->aphy, tx_flags);
}
/*