diff --git a/libavfilter/af_amerge.c b/libavfilter/af_amerge.c index cc974cdb7f..09c660ef49 100644 --- a/libavfilter/af_amerge.c +++ b/libavfilter/af_amerge.c @@ -322,7 +322,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *insamples) static av_cold int init(AVFilterContext *ctx) { AMergeContext *s = ctx->priv; - int i; + int i, ret; s->in = av_calloc(s->nb_inputs, sizeof(*s->in)); if (!s->in) @@ -336,7 +336,10 @@ static av_cold int init(AVFilterContext *ctx) }; if (!name) return AVERROR(ENOMEM); - ff_insert_inpad(ctx, i, &pad); + if ((ret = ff_insert_inpad(ctx, i, &pad)) < 0) { + av_freep(&pad.name); + return ret; + } } return 0; }