From: Felix Fietkau Date: Wed, 27 Aug 2025 08:53:49 +0000 (+0200) Subject: wifi: mt76: mt7996: add missing check for rx wcid entries X-Git-Tag: v6.16.6~147 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=69dcc19048fcdc3fb166fd25b805470ee8fc0eb1;p=thirdparty%2Fkernel%2Fstable.git wifi: mt76: mt7996: add missing check for rx wcid entries [ Upstream commit 4a522b01e368eec58d182ecc47d24f49a39e440d ] Non-station wcid entries must not be passed to the rx functions. In case of the global wcid entry, it could even lead to corruption in the wcid array due to pointer being casted to struct mt7996_sta_link using container_of. Fixes: 7464b12b7d92 ("wifi: mt76: mt7996: rework mt7996_rx_get_wcid to support MLO") Link: https://patch.msgid.link/20250827085352.51636-3-nbd@nbd.name Signed-off-by: Felix Fietkau Signed-off-by: Sasha Levin --- diff --git a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c index b0fa051fc3094..a7a5ac8b7d265 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7996/mac.c +++ b/drivers/net/wireless/mediatek/mt76/mt7996/mac.c @@ -62,7 +62,7 @@ static struct mt76_wcid *mt7996_rx_get_wcid(struct mt7996_dev *dev, int i; wcid = mt76_wcid_ptr(dev, idx); - if (!wcid) + if (!wcid || !wcid->sta) return NULL; if (!mt7996_band_valid(dev, band_idx))