From 969267482de97b08503d27d2fe090ec820273e40 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 10 Aug 2012 04:33:42 +0200 Subject: ffmpeg: Allocate new buffer for bitstream filter when buffer shifted fix crash with aac_adtstoasc bitstream filter Fixes Ticket1441 Signed-off-by: Michael Niedermayer --- ffmpeg.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'ffmpeg.c') diff --git a/ffmpeg.c b/ffmpeg.c index d1df56c044..662e84af66 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -534,6 +534,16 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) &new_pkt.data, &new_pkt.size, pkt->data, pkt->size, pkt->flags & AV_PKT_FLAG_KEY); + if(a == 0 && new_pkt.data != pkt->data && new_pkt.destruct) { + uint8_t *t = av_malloc(new_pkt.size + FF_INPUT_BUFFER_PADDING_SIZE); //the new should be a subset of the old so cannot overflow + if(t) { + memcpy(t, new_pkt.data, new_pkt.size); + memset(t + new_pkt.size, 0, FF_INPUT_BUFFER_PADDING_SIZE); + new_pkt.data = t; + a = 1; + } else + a = AVERROR(ENOMEM); + } if (a > 0) { av_free_packet(pkt); new_pkt.destruct = av_destruct_packet; -- cgit v1.2.3