Module: libav
Branch: master
Commit: 0ac8ff618c5e6d878c547a8877e714ed728950ce

Author:    Luca Barbato <[email protected]>
Committer: Luca Barbato <[email protected]>
Date:      Tue Apr 28 01:55:10 2015 +0200

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: [email protected]

Signed-off-by: Luca Barbato <[email protected]>

---

 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);

_______________________________________________
libav-commits mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to