Module: libav Branch: master Commit: 985f34b75653d02eda8eb8def3412f8577f19b01
Author: Janne Grunau <[email protected]> Committer: Luca Barbato <[email protected]> Date: Sat Jun 15 22:11:55 2013 +0300 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 <[email protected]> Signed-off-by: Luca Barbato <[email protected]> --- libavcodec/utils.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) 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) _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
