[PATCH] ALSA: asihpi: Fix potential OOB array access at reading cache

Takashi Iwai posted 1 patch 4 weeks ago
sound/pci/asihpi/hpicmn.c | 6 ++++++
1 file changed, 6 insertions(+)
[PATCH] ALSA: asihpi: Fix potential OOB array access at reading cache
Posted by Takashi Iwai 4 weeks ago
find_control() to retrieve a cached info accesses the array with the
given index blindly, which may lead to an OOB array access.
Add a sanity check for avoiding it.

Link: https://sashiko.dev/#/patchset/20260511230121.28606-1-rosenp%40gmail.com
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/asihpi/hpicmn.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/sound/pci/asihpi/hpicmn.c b/sound/pci/asihpi/hpicmn.c
index 0674fd854cc8..5f69c04c672a 100644
--- a/sound/pci/asihpi/hpicmn.c
+++ b/sound/pci/asihpi/hpicmn.c
@@ -276,6 +276,12 @@ static short find_control(u16 control_index,
 		return 0;
 	}
 
+	if (control_index >= p_cache->control_count) {
+		HPI_DEBUG_LOG(VERBOSE, "control_index out of bounce %d\n",
+			control_index);
+		return 0;
+	}
+
 	*pI = p_cache->p_info[control_index];
 	if (!*pI) {
 		HPI_DEBUG_LOG(VERBOSE, "Uncached Control %d\n",
-- 
2.54.0