summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2026-05-15 10:55:58 +0200
committerTakashi Iwai <tiwai@suse.de>2026-05-16 15:41:58 +0200
commit7b7d6572145c1dab2dd9bfb550b188e5f0ff3c3f (patch)
tree4330fd05cca1a60e9960df069a6958da3de2548f
parent6fd9f6e870ea285f05102e8e00e6a7f4495a9a02 (diff)
downloadlwn-7b7d6572145c1dab2dd9bfb550b188e5f0ff3c3f.tar.gz
lwn-7b7d6572145c1dab2dd9bfb550b188e5f0ff3c3f.zip
ALSA: asihpi: Fix potential OOB array access at reading cache
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> Link: https://patch.msgid.link/20260515085606.242284-1-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/asihpi/hpicmn.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/pci/asihpi/hpicmn.c b/sound/pci/asihpi/hpicmn.c
index d846777e7462..19f0da2e6501 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",