[FFmpeg-cvslog] avresample: Reallocate the internal buffer to the correct size

Luca Barbato git at videolan.org
Wed Apr 29 05:56:10 CEST 2015


ffmpeg | branch: master | Luca Barbato <lu_zero at gentoo.org> | Tue Apr 28 01:55:10 2015 +0200| [0ac8ff618c5e6d878c547a8877e714ed728950ce] | committer: Luca Barbato

avresample: Reallocate the internal buffer to the correct size

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 at libav.org

Signed-off-by: Luca Barbato <lu_zero at gentoo.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0ac8ff618c5e6d878c547a8877e714ed728950ce
---

 libavresample/resample.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavresample/resample.c b/libavresample/resample.c
index bf766a2..86a761b 100644
--- a/libavresample/resample.c
+++ b/libavresample/resample.c
@@ -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);



More information about the ffmpeg-cvslog mailing list