mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
ALSA: dummy: Check card index validity at probe
commit 02442d5fe8 upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
b7528b4281
commit
b20eb7ecbd
@@ -1025,6 +1025,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)
|
||||
|
||||
Reference in New Issue
Block a user