]> git.alsa-project.org Git - alsa-oss.git/commitdiff
Added checks for invalid values for SPACE ioctls
authorJaroslav Kysela <perex@perex.cz>
Thu, 24 Jul 2003 18:13:28 +0000 (18:13 +0000)
committerJaroslav Kysela <perex@perex.cz>
Thu, 24 Jul 2003 18:13:28 +0000 (18:13 +0000)
alsa-oss.c

index 3237f34b6facee1c7ea9e30aa212a16a8ac5f12d..a2c0c8bdf8c7697f4b90c716e866e43c2eade2eb 100644 (file)
@@ -1023,6 +1023,8 @@ static int oss_dsp_ioctl(int fd, unsigned long cmd, ...)
                avail = snd_pcm_avail_update(pcm);
                if (avail < 0)
                        avail = 0;
+               if ((snd_pcm_uframes_t)avail > str->buffer_size)
+                       avail = str->buffer_size;
                info->fragsize = str->period_size * str->frame_bytes;
                info->fragstotal = str->periods;
                info->bytes = avail * str->frame_bytes;
@@ -1053,7 +1055,7 @@ static int oss_dsp_ioctl(int fd, unsigned long cmd, ...)
                                oss_dsp_mmap_update(dsp, SND_PCM_STREAM_PLAYBACK, delay);
                }
                avail = snd_pcm_avail_update(pcm);
-               if (avail < 0)
+               if (avail < 0 || (snd_pcm_uframes_t)avail > str->buffer_size)
                        avail = str->buffer_size;
                info->fragsize = str->period_size * str->frame_bytes;
                info->fragstotal = str->periods;