Skip to content

Commit

Permalink
avresample: Reallocate the internal buffer to the correct size
Browse files Browse the repository at this point in the history
Fixes the corner case in which the internal buffer size
is larger than input buffer provided and resizing it
before moving the left over samples would make it write
to now unallocated memory.

Bug-Id: 825
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
  • Loading branch information
lu-zero committed Apr 28, 2015
1 parent 82de8d7 commit 0ac8ff6
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion libavresample/resample.c
Expand Up @@ -434,7 +434,9 @@ int ff_audio_resample(ResampleContext *c, AudioData *dst, AudioData *src)
int bps = av_get_bytes_per_sample(c->avr->internal_sample_fmt);
int i;

ret = ff_audio_data_realloc(c->buffer, in_samples + c->padding_size);
ret = ff_audio_data_realloc(c->buffer,
FFMAX(in_samples, in_leftover) +
c->padding_size);
if (ret < 0) {
av_log(c->avr, AV_LOG_ERROR, "Error reallocating resampling buffer\n");
return AVERROR(ENOMEM);
Expand Down

0 comments on commit 0ac8ff6

Please sign in to comment.