mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
wifi: ath12k: Correct tid cleanup when tid setup fails
[ Upstream commit 4a2bf707270f897ab8077baee8ed5842a5321686 ] Currently, if any error occurs during ath12k_dp_rx_peer_tid_setup(), the tid value is already incremented, even though the corresponding TID is not actually allocated. Proceed to ath12k_dp_rx_peer_tid_delete() starting from unallocated tid, which might leads to freeing unallocated TID and cause potential crash or out-of-bounds access. Hence, fix by correctly decrementing tid before cleanup to match only the successfully allocated TIDs. Also, remove tid-- from failure case of ath12k_dp_rx_peer_frag_setup(), as decrementing the tid before cleanup in loop will take care of this. Compile tested only. Signed-off-by: Sarika Sharma <quic_sarishar@quicinc.com> Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com> Link: https://patch.msgid.link/20250721061749.886732-1-quic_sarishar@quicinc.com Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
5d3559880e
commit
30cad87978
@@ -91,7 +91,7 @@ peer_clean:
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
for (; tid >= 0; tid--)
|
||||
for (tid--; tid >= 0; tid--)
|
||||
ath12k_dp_rx_peer_tid_delete(ar, peer, tid);
|
||||
|
||||
spin_unlock_bh(&ab->base_lock);
|
||||
|
||||
Reference in New Issue
Block a user