summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2026-08-06 12:04:31 +0200
committerTakashi Iwai <tiwai@suse.de>2026-08-06 17:02:02 +0200
commit02442d5fe8ee365a084b055d4fa81a0c1abfc3fd (patch)
treeae9f6e8903f54e3941f686f4e61ad8d7d32b0a4e
parenta7e2cca7941bb99d0b1081bf05f00f6c9ecde2d4 (diff)
downloadlinux-stable-02442d5fe8ee365a084b055d4fa81a0c1abfc3fd.tar.gz
linux-stable-02442d5fe8ee365a084b055d4fa81a0c1abfc3fd.zip
ALSA: dummy: Check card index validity at probe
snd_dummy_probe() blindly trusts that the given devptr->id value is within the proper card index range. It's OK for the devices the driver itself creates at the module probe time, but if the device is bound manually via sysfs interface, this could be -1 as "none", and this leads to OOB access for index[] and other parameters. Add a sanity check for the card index and warn/correct it if it's a value out of the range. Reported-by: syzbot+2fb5d1f7cc4c1f132bcc@syzkaller.appspotmail.com Closes: https://lore.kernel.org/6a73bd4d.01d0871a.3a0d52.0005.GAE@google.com Cc: <stable@vger.kernel.org> Link: https://patch.msgid.link/20260806100433.1287393-1-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/drivers/dummy.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/drivers/dummy.c b/sound/drivers/dummy.c
index 8836799727ea..022247354732 100644
--- a/sound/drivers/dummy.c
+++ b/sound/drivers/dummy.c
@@ -1042,6 +1042,12 @@ static int snd_dummy_probe(struct platform_device *devptr)
int idx, err;
int dev = devptr->id;
+ if (dev < 0 || dev >= SNDRV_CARDS) {
+ dev_warn(&devptr->dev,
+ "Invalid card index %d, using default 0\n", dev);
+ dev = 0;
+ }
+
err = snd_devm_card_new(&devptr->dev, index[dev], id[dev], THIS_MODULE,
sizeof(struct snd_dummy), &card);
if (err < 0)