diff mbox series

[FFmpeg-devel,06/30] avcodec/g722enc: Cleanup generically on init failure

Message ID 20200915074000.102622-6-andreas.rheinhardt@gmail.com
State Accepted
Commit 23daf8e67fd842a70b783105025ddb483c036472
Headers show
Series [FFmpeg-devel,01/30] avcodec/flashsvenc: Avoid allocation of buffer, fix memleak
Related show

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Andreas Rheinhardt Sept. 15, 2020, 7:39 a.m. UTC
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
---
 libavcodec/g722enc.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)
diff mbox series

Patch

diff --git a/libavcodec/g722enc.c b/libavcodec/g722enc.c
index 25b61df19e..9357f170fe 100644
--- a/libavcodec/g722enc.c
+++ b/libavcodec/g722enc.c
@@ -59,7 +59,6 @@  static av_cold int g722_encode_close(AVCodecContext *avctx)
 static av_cold int g722_encode_init(AVCodecContext * avctx)
 {
     G722Context *c = avctx->priv_data;
-    int ret;
 
     c->band[0].scale_factor = 8;
     c->band[1].scale_factor = 2;
@@ -73,10 +72,8 @@  static av_cold int g722_encode_init(AVCodecContext * avctx)
             c->paths[i] = av_mallocz_array(max_paths, sizeof(**c->paths));
             c->node_buf[i] = av_mallocz_array(frontier, 2 * sizeof(**c->node_buf));
             c->nodep_buf[i] = av_mallocz_array(frontier, 2 * sizeof(**c->nodep_buf));
-            if (!c->paths[i] || !c->node_buf[i] || !c->nodep_buf[i]) {
-                ret = AVERROR(ENOMEM);
-                goto error;
-            }
+            if (!c->paths[i] || !c->node_buf[i] || !c->nodep_buf[i])
+                return AVERROR(ENOMEM);
         }
     }
 
@@ -118,9 +115,6 @@  static av_cold int g722_encode_init(AVCodecContext * avctx)
     ff_g722dsp_init(&c->dsp);
 
     return 0;
-error:
-    g722_encode_close(avctx);
-    return ret;
 }
 
 static const int16_t low_quant[33] = {
@@ -387,4 +381,5 @@  AVCodec ff_adpcm_g722_encoder = {
     .capabilities    = AV_CODEC_CAP_SMALL_LAST_FRAME,
     .sample_fmts     = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE },
     .channel_layouts = (const uint64_t[]){ AV_CH_LAYOUT_MONO, 0 },
+    .caps_internal   = FF_CODEC_CAP_INIT_CLEANUP,
 };