Commit 96926748 authored by Michael Niedermayer's avatar Michael Niedermayer

ffmpeg: Allocate new buffer for bitstream filter when buffer shifted

fix crash with aac_adtstoasc bitstream filter
Fixes Ticket1441
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent a0d15027
...@@ -534,6 +534,16 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost) ...@@ -534,6 +534,16 @@ static void write_frame(AVFormatContext *s, AVPacket *pkt, OutputStream *ost)
&new_pkt.data, &new_pkt.size, &new_pkt.data, &new_pkt.size,
pkt->data, pkt->size, pkt->data, pkt->size,
pkt->flags & AV_PKT_FLAG_KEY); 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) { if (a > 0) {
av_free_packet(pkt); av_free_packet(pkt);
new_pkt.destruct = av_destruct_packet; new_pkt.destruct = av_destruct_packet;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment