mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-12-17 08:56:45 -05:00
fix memory leak
This commit is contained in:
parent
f3fff3e0ef
commit
45814d5ec5
1 changed files with 5 additions and 2 deletions
|
|
@ -250,6 +250,8 @@ static int snd_output_buffer_need(snd_output_t *output, size_t size)
|
||||||
snd_output_buffer_t *buffer = output->private_data;
|
snd_output_buffer_t *buffer = output->private_data;
|
||||||
size_t _free = buffer->alloc - buffer->size;
|
size_t _free = buffer->alloc - buffer->size;
|
||||||
size_t alloc;
|
size_t alloc;
|
||||||
|
unsigned char *buf;
|
||||||
|
|
||||||
if (_free >= size)
|
if (_free >= size)
|
||||||
return _free;
|
return _free;
|
||||||
if (buffer->alloc == 0)
|
if (buffer->alloc == 0)
|
||||||
|
|
@ -258,9 +260,10 @@ static int snd_output_buffer_need(snd_output_t *output, size_t size)
|
||||||
alloc = buffer->alloc;
|
alloc = buffer->alloc;
|
||||||
while (alloc < size)
|
while (alloc < size)
|
||||||
alloc *= 2;
|
alloc *= 2;
|
||||||
buffer->buf = realloc(buffer->buf, alloc);
|
buf = realloc(buffer->buf, alloc);
|
||||||
if (!buffer->buf)
|
if (!buf)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
buffer->buf = buf;
|
||||||
buffer->alloc = alloc;
|
buffer->alloc = alloc;
|
||||||
return buffer->alloc - buffer->size;
|
return buffer->alloc - buffer->size;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue