diff options
author | Ben Greear <greearb@candelatech.com> | 2010-10-13 15:01:23 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-10-13 15:45:23 -0400 |
commit | c23cc81a5e5c1d4486b662cedd0afcdf9145f154 (patch) | |
tree | 9b7a1a2b030d5298d1d4967f354bb09ec4e90232 /drivers/net/wireless/ath/ath9k/xmit.c | |
parent | e4b55957eb695b43055b6badec026628b24fe80a (diff) |
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>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/xmit.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/xmit.c | 2 |
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, | |||
1924 | else | 1924 | else |
1925 | complete(&sc->paprd_complete); | 1925 | complete(&sc->paprd_complete); |
1926 | } else { | 1926 | } else { |
1927 | ath_tx_complete(sc, skb, bf->aphy, tx_flags); | ||
1928 | ath_debug_stat_tx(sc, txq, bf, ts); | 1927 | ath_debug_stat_tx(sc, txq, bf, ts); |
1928 | ath_tx_complete(sc, skb, bf->aphy, tx_flags); | ||
1929 | } | 1929 | } |
1930 | 1930 | ||
1931 | /* | 1931 | /* |