mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
Fixed munmap sizes (SIGSEGV)
This commit is contained in:
parent
d1c4f4e8aa
commit
6113d83e08
1 changed files with 2 additions and 2 deletions
|
|
@ -388,7 +388,7 @@ int snd_pcm_munmap(snd_pcm_t *pcm)
|
||||||
for (c = 0; c < pcm->channels; ++c) {
|
for (c = 0; c < pcm->channels; ++c) {
|
||||||
snd_pcm_channel_info_t *i = &pcm->mmap_channels[c];
|
snd_pcm_channel_info_t *i = &pcm->mmap_channels[c];
|
||||||
unsigned int c1;
|
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)
|
if (!i->addr)
|
||||||
continue;
|
continue;
|
||||||
for (c1 = c + 1; c1 < pcm->channels; ++c1) {
|
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)
|
if (i1->addr != i->addr)
|
||||||
continue;
|
continue;
|
||||||
i1->addr = NULL;
|
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)
|
if (s > size)
|
||||||
size = s;
|
size = s;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue