| From dda4820ee5c1f6a67f20f22ca2ad2e6e528de153 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 25 Jul 2024 14:17:43 +0300 |
| Subject: wifi: ath9k: fix possible integer overflow in ath9k_get_et_stats() |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Dmitry Kandybka <d.kandybka@gmail.com> |
| |
| [ Upstream commit 3f66f26703093886db81f0610b97a6794511917c ] |
| |
| In 'ath9k_get_et_stats()', promote TX stats counters to 'u64' |
| to avoid possible integer overflow. Compile tested only. |
| |
| Found by Linux Verification Center (linuxtesting.org) with SVACE. |
| |
| Signed-off-by: Dmitry Kandybka <d.kandybka@gmail.com> |
| Acked-by: Toke Høiland-Jørgensen <toke@toke.dk> |
| Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> |
| Link: https://patch.msgid.link/20240725111743.14422-1-d.kandybka@gmail.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/ath/ath9k/debug.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/net/wireless/ath/ath9k/debug.c b/drivers/net/wireless/ath/ath9k/debug.c |
| index f5773ce252dd1..952c5e93e6ce9 100644 |
| --- a/drivers/net/wireless/ath/ath9k/debug.c |
| +++ b/drivers/net/wireless/ath/ath9k/debug.c |
| @@ -1316,11 +1316,11 @@ void ath9k_get_et_stats(struct ieee80211_hw *hw, |
| struct ath_softc *sc = hw->priv; |
| int i = 0; |
| |
| - data[i++] = (sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BE)].tx_pkts_all + |
| + data[i++] = ((u64)sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BE)].tx_pkts_all + |
| sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BK)].tx_pkts_all + |
| sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VI)].tx_pkts_all + |
| sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VO)].tx_pkts_all); |
| - data[i++] = (sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BE)].tx_bytes_all + |
| + data[i++] = ((u64)sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BE)].tx_bytes_all + |
| sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_BK)].tx_bytes_all + |
| sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VI)].tx_bytes_all + |
| sc->debug.stats.txstats[PR_QNUM(IEEE80211_AC_VO)].tx_bytes_all); |
| -- |
| 2.43.0 |
| |