From: Janne Grunau Date: Sat, 15 Jun 2013 19:11:55 +0000 (+0300) Subject: utils: fix avcodec_flush_buffers pre-reference counting compatibility X-Git-Tag: v10_alpha1~1319 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=985f34b75653d02eda8eb8def3412f8577f19b01;p=platform%2Fupstream%2Flibav.git utils: fix avcodec_flush_buffers pre-reference counting compatibility The to_free AVframe must be freed just like the other ones. Indeed, the calling application may expect all frames to be released. (This regression caused use-after-free in VLC with hwaccel.) Signed-off-by: RĂ©mi Denis-Courmont Signed-off-by: Luca Barbato --- diff --git a/libavcodec/utils.c b/libavcodec/utils.c index accb6b3..3dddafc 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1804,6 +1804,9 @@ void avcodec_flush_buffers(AVCodecContext *avctx) ff_thread_flush(avctx); else if (avctx->codec->flush) avctx->codec->flush(avctx); + + if (!avctx->refcounted_frames) + av_frame_unref(&avctx->internal->to_free); } int av_get_exact_bits_per_sample(enum AVCodecID codec_id)