aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core/rawmidi.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2005-11-20 13:59:56 +0100
committerJaroslav Kysela <perex@suse.cz>2006-01-03 12:29:12 +0100
commita106cd3d9e88c8761bd0eac2ce402cc82bd11fea (patch)
tree1dd614d50a0bd30af45fd63372f02da5a5fe86e6 /sound/core/rawmidi.c
parent[ALSA] cs5535audio: move sound/driver.h to the top (diff)
downloadlinux-dev-a106cd3d9e88c8761bd0eac2ce402cc82bd11fea.tar.xz
linux-dev-a106cd3d9e88c8761bd0eac2ce402cc82bd11fea.zip
[ALSA] rawmidi: protect against invalid device number in snd_rawmidi_info_select()
Modules: RawMidi Midlevel In snd_rawmidi_info_select(), check that the device identified by the passed device number actually exists. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Diffstat (limited to 'sound/core/rawmidi.c')
-rw-r--r--sound/core/rawmidi.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c
index 7a86a9a08a15..d703545cae8a 100644
--- a/sound/core/rawmidi.c
+++ b/sound/core/rawmidi.c
@@ -573,6 +573,8 @@ int snd_rawmidi_info_select(struct snd_card *card, struct snd_rawmidi_info *info
if (info->device >= SNDRV_RAWMIDI_DEVICES)
return -ENXIO;
rmidi = snd_rawmidi_devices[card->number * SNDRV_RAWMIDI_DEVICES + info->device];
+ if (!rmidi)
+ return -ENXIO;
if (info->stream < 0 || info->stream > 1)
return -EINVAL;
pstr = &rmidi->streams[info->stream];