[FFmpeg-devel] [PATCH] avcodec/tta: Cleanup generically on init failure

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Tue Feb 8 12:58:57 EET 2022


Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavcodec/tta.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/libavcodec/tta.c b/libavcodec/tta.c
index 17b4ca9032..accac38893 100644
--- a/libavcodec/tta.c
+++ b/libavcodec/tta.c
@@ -114,10 +114,8 @@ static int allocate_buffers(AVCodecContext *avctx)
     } else
         s->decode_buffer = NULL;
     s->ch_ctx = av_malloc_array(avctx->channels, sizeof(*s->ch_ctx));
-    if (!s->ch_ctx) {
-        av_freep(&s->decode_buffer);
+    if (!s->ch_ctx)
         return AVERROR(ENOMEM);
-    }
 
     return 0;
 }
@@ -427,5 +425,5 @@ const AVCodec ff_tta_decoder = {
     .decode         = tta_decode_frame,
     .capabilities   = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS | AV_CODEC_CAP_CHANNEL_CONF,
     .priv_class     = &tta_decoder_class,
-    .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE,
+    .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
 };
-- 
2.32.0



More information about the ffmpeg-devel mailing list