]> git.sesse.net Git - ffmpeg/commitdiff
avresample: Reallocate the internal buffer to the correct size
authorLuca Barbato <lu_zero@gentoo.org>
Mon, 27 Apr 2015 23:55:10 +0000 (01:55 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Tue, 28 Apr 2015 21:51:51 +0000 (23:51 +0200)
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>
libavresample/resample.c

index bf766a2b97dcf913344aff844d13d6fd033608b0..86a761b5d0b320ec656510bad5617db904036666 100644 (file)
@@ -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);