]> git.alsa-project.org Git - alsa-lib.git/commitdiff
Fixed munmap sizes (SIGSEGV)
authorJaroslav Kysela <perex@perex.cz>
Sat, 15 Dec 2001 17:22:31 +0000 (17:22 +0000)
committerJaroslav Kysela <perex@perex.cz>
Sat, 15 Dec 2001 17:22:31 +0000 (17:22 +0000)
src/pcm/pcm_mmap.c

index cf842bc7e05d9487ee1bc1b06520245452ec757f..7a29e5aab3867c49a82570a58c41668a27199ab9 100644 (file)
@@ -388,7 +388,7 @@ int snd_pcm_munmap(snd_pcm_t *pcm)
        for (c = 0; c < pcm->channels; ++c) {
                snd_pcm_channel_info_t *i = &pcm->mmap_channels[c];
                unsigned int c1;
-               size_t size = i->first + i->step * pcm->buffer_size;
+               size_t size = i->first + i->step * (pcm->buffer_size - 1) + pcm->sample_bits;
                if (!i->addr)
                        continue;
                for (c1 = c + 1; c1 < pcm->channels; ++c1) {
@@ -397,7 +397,7 @@ int snd_pcm_munmap(snd_pcm_t *pcm)
                        if (i1->addr != i->addr)
                                continue;
                        i1->addr = NULL;
-                       s = i1->first + i1->step * pcm->buffer_size;
+                       s = i1->first + i1->step * (pcm->buffer_size - 1) + pcm->sample_bits;
                        if (s > size)
                                size = s;
                }