Browse Source

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 <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
tags/n4.4
Andreas Rheinhardt 5 years ago
parent
commit
fdbd579fd1
1 changed files with 6 additions and 10 deletions
  1. +6
    -10
      libavfilter/af_anequalizer.c

+ 6
- 10
libavfilter/af_anequalizer.c View File

@@ -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);


Loading…
Cancel
Save