aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2019-08-27 17:21:00 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2019-11-15 12:25:46 +0100
commit1b90d7bbde65b297f372b62560fafb39309f18ee (patch)
tree262d166028927b7ed1f08283bf23594652430f9a
parenta663d186a635ece13274ea04921d136a17f14e07 (diff)
downloadffmpeg-1b90d7bbde65b297f372b62560fafb39309f18ee.tar.gz
libavcodec/utils: Free threads on init failure
Fixes: Multiple memleaks Fixes: ffmpeg-memory-leak Found-by: Francis Provencher <francis@protekresearchlab.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit 61b055bed0968d60eb24a5080fb4ba2bcf73b753) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavcodec/utils.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index f40a533399..80a6aa6930 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1123,6 +1123,9 @@ free_and_end:
(avctx->codec->caps_internal & FF_CODEC_CAP_INIT_CLEANUP)))
avctx->codec->close(avctx);
+ if (HAVE_THREADS && avctx->internal->thread_ctx)
+ ff_thread_free(avctx);
+
if (codec->priv_class && codec->priv_data_size)
av_opt_free(avctx->priv_data);
av_opt_free(avctx);