Commit 2cb1031a authored by Karthikeyan Periyasamy's avatar Karthikeyan Periyasamy Committed by Wang Liang
Browse files

wifi: ath11k: fix array out-of-bound access in SoC stats

stable inclusion
from stable-v5.10.227
commit 0f26f26944035ec67546a944f182cbad6577a9c0
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IAYR8M
CVE: CVE-2024-49930

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0f26f26944035ec67546a944f182cbad6577a9c0



--------------------------------

[ Upstream commit 69f253e46af98af17e3efa3e5dfa72fcb7d1983d ]

Currently, the ath11k_soc_dp_stats::hal_reo_error array is defined with a
maximum size of DP_REO_DST_RING_MAX. However, the ath11k_dp_process_rx()
function access ath11k_soc_dp_stats::hal_reo_error using the REO
destination SRNG ring ID, which is incorrect. SRNG ring ID differ from
normal ring ID, and this usage leads to out-of-bounds array access. To fix
this issue, modify ath11k_dp_process_rx() to use the normal ring ID
directly instead of the SRNG ring ID to avoid out-of-bounds array access.

Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1

Signed-off-by: default avatarKarthikeyan Periyasamy <quic_periyasa@quicinc.com>
Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
Link: https://patch.msgid.link/20240704070811.4186543-3-quic_periyasa@quicinc.com


Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarWang Liang <wangliang74@huawei.com>
parent 1a47bbfa
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2600,7 +2600,7 @@ int ath11k_dp_process_rx(struct ath11k_base *ab, int ring_id,
		if (push_reason !=
		    HAL_REO_DEST_RING_PUSH_REASON_ROUTING_INSTRUCTION) {
			dev_kfree_skb_any(msdu);
			ab->soc_stats.hal_reo_error[dp->reo_dst_ring[ring_id].ring_id]++;
			ab->soc_stats.hal_reo_error[ring_id]++;
			continue;
		}