avfilter/vf_palettegen: Fix leak and simplify code
authorMichael Niedermayer <michael@niedermayer.cc>
Sat, 21 Jan 2017 21:09:03 +0000 (22:09 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Sat, 21 Jan 2017 21:40:14 +0000 (22:40 +0100)
Fixes CID1270818

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavfilter/vf_palettegen.c

index 668a4ae..5e69873 100644 (file)
@@ -95,15 +95,10 @@ static int query_formats(AVFilterContext *ctx)
     static const enum AVPixelFormat in_fmts[]  = {AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE};
     static const enum AVPixelFormat out_fmts[] = {AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE};
     int ret;
-    AVFilterFormats *in  = ff_make_format_list(in_fmts);
-    AVFilterFormats *out = ff_make_format_list(out_fmts);
-    if (!in || !out) {
-        av_freep(&in);
-        av_freep(&out);
-        return AVERROR(ENOMEM);
-    }
-    if ((ret = ff_formats_ref(in , &ctx->inputs[0]->out_formats)) < 0 ||
-        (ret = ff_formats_ref(out, &ctx->outputs[0]->in_formats)) < 0)
+
+    if ((ret = ff_formats_ref(ff_make_format_list(in_fmts) , &ctx->inputs[0]->out_formats)) < 0)
+        return ret;
+    if ((ret = ff_formats_ref(ff_make_format_list(out_fmts), &ctx->outputs[0]->in_formats)) < 0)
         return ret;
     return 0;
 }