[PATCH] ath9k: fix null-ptr-deref in ath_chanctx_event

From: Dongliang Mu
Date: Fri Sep 01 2023 - 04:09:50 EST


Smatch reports:

ath_chanctx_event() error: we previously assumed 'vif' could be null

The function ath_chanctx_event can be called with vif argument as NULL.
If vif is NULL, ath_dbg can trigger a null pointer dereference.

Fix this by adding a null pointer check.

Fixes: 878066e745b5 ("ath9k: Add more debug statements for channel context")
Signed-off-by: Dongliang Mu <dzm91@xxxxxxxxxxx>
---
drivers/net/wireless/ath/ath9k/channel.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
index 571062f2e82a..e343c8962d14 100644
--- a/drivers/net/wireless/ath/ath9k/channel.c
+++ b/drivers/net/wireless/ath/ath9k/channel.c
@@ -576,7 +576,9 @@ void ath_chanctx_event(struct ath_softc *sc, struct ieee80211_vif *vif,
if (sc->sched.state != ATH_CHANCTX_STATE_WAIT_FOR_BEACON)
break;

- ath_dbg(common, CHAN_CTX, "Preparing beacon for vif: %pM\n", vif->addr);
+ if (vif)
+ ath_dbg(common, CHAN_CTX,
+ "Preparing beacon for vif: %pM\n", vif->addr);

sc->sched.beacon_pending = true;
sc->sched.next_tbtt = REG_READ(ah, AR_NEXT_TBTT_TIMER);
--
2.39.2