From fdbd579fd10bc80c0f4e5a86497a4aa2e00317c5 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Sat, 22 Aug 2020 03:23:51 +0200 Subject: avfilter/af_anequalizer: Fix memleak when inserting pad fails It has been forgotten to free the name of the second outpad if attaching the first one to the AVFilterContext fails. Fixing this is easy: Only prepare the second outpad after (and if) the first outpad has been successfully attached to the AVFilterContext. Reviewed-by: Paul B Mahol Signed-off-by: Andreas Rheinhardt --- libavfilter/af_anequalizer.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'libavfilter/af_anequalizer.c') diff --git a/libavfilter/af_anequalizer.c b/libavfilter/af_anequalizer.c index 177e1c7b39..26cf835727 100644 --- a/libavfilter/af_anequalizer.c +++ b/libavfilter/af_anequalizer.c @@ -199,6 +199,12 @@ static av_cold int init(AVFilterContext *ctx) if (!pad.name) return AVERROR(ENOMEM); + ret = ff_insert_outpad(ctx, 0, &pad); + if (ret < 0) { + av_freep(&pad.name); + return ret; + } + if (s->draw_curves) { vpad = (AVFilterPad){ .name = av_strdup("out1"), @@ -206,18 +212,8 @@ static av_cold int init(AVFilterContext *ctx) .config_props = config_video, }; if (!vpad.name) { - av_freep(&pad.name); return AVERROR(ENOMEM); } - } - - ret = ff_insert_outpad(ctx, 0, &pad); - if (ret < 0) { - av_freep(&pad.name); - return ret; - } - - if (s->draw_curves) { ret = ff_insert_outpad(ctx, 1, &vpad); if (ret < 0) { av_freep(&vpad.name); -- cgit v1.2.3