[ALSA] Fix possible invalid memory access in PCM core
authorTakashi Iwai <tiwai@suse.de>
Thu, 1 Feb 2007 13:53:49 +0000 (14:53 +0100)
committerJaroslav Kysela <perex@suse.cz>
Fri, 9 Feb 2007 08:03:31 +0000 (09:03 +0100)
snd_internval_list() may access invalid memory in the case count = 0
is given.  It shouldn't be passed, but it'd better to make the code
a bit more robust.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
sound/core/pcm_lib.c

index b336797..9fefcaa 100644 (file)
@@ -781,6 +781,11 @@ int snd_interval_list(struct snd_interval *i, unsigned int count, unsigned int *
 {
         unsigned int k;
        int changed = 0;
+
+       if (!count) {
+               i->empty = 1;
+               return -EINVAL;
+       }
         for (k = 0; k < count; k++) {
                if (mask && !(mask & (1 << k)))
                        continue;