Module: libav
Branch: release/12
Commit: a9a96558a03266e3c39561a72e66097a92955927

Author:    Luca Barbato <lu_z...@gentoo.org>
Committer: Sean McGovern <gsean...@gmail.com>
Date:      Wed Apr 12 01:46:30 2017 +0200

avformat: Free the internal codec context at the end

Avoid a use after free in avformat_find_stream_info.

CC: libav-sta...@libav.org
(cherry picked from commit 9e4a5eb51b9f3b2bff0ef08e0074b7fe4893075d)

Signed-off-by: Sean McGovern <gsean...@gmail.com>

---

 libavformat/utils.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 6df1a32..60c534d 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2363,11 +2363,6 @@ FF_ENABLE_DEPRECATION_WARNINGS
         count++;
     }
 
-    // close codecs which were opened in try_decode_frame()
-    for (i = 0; i < ic->nb_streams; i++) {
-        st = ic->streams[i];
-        avcodec_close(st->internal->avctx);
-    }
     for (i = 0; i < ic->nb_streams; i++) {
         st = ic->streams[i];
         avctx = st->internal->avctx;
@@ -2467,6 +2462,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
 
 find_stream_info_err:
     for (i = 0; i < ic->nb_streams; i++) {
+        avcodec_close(ic->streams[i]->internal->avctx);
         av_freep(&ic->streams[i]->info);
     }
     return ret;

_______________________________________________
libav-commits mailing list
libav-commits@libav.org
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to