From d8538a10024cc33075a8d5b121336ed12ba545ad Mon Sep 17 00:00:00 2001 From: Dale Curtis Date: Wed, 22 May 2013 15:17:08 -0700 Subject: [PATCH] avformat/utils: Keep internal and external av_read_frame() packets in sync. Otherwise, during error conditions, the caller will be left with dangling pointers to a destructed packet => boom. BUG=242786 TEST=ffmpeg_regression_tests Commit slightly simplified by commiter Signed-off-by: Michael Niedermayer (cherry picked from commit c54a1565f512858ccfa70392f40f11c098bc1b63) Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavformat/utils.c b/libavformat/utils.c index ed83f28b0a..4e6e21586d 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1457,6 +1457,9 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt) st->skip_to_keyframe = 0; if (st->skip_to_keyframe) { av_free_packet(&cur_pkt); + if (got_packet) { + *pkt = cur_pkt; + } got_packet = 0; } }