diff --git a/libavfilter/vf_fieldmatch.c b/libavfilter/vf_fieldmatch.c index 17402158d4..3694f26d33 100644 --- a/libavfilter/vf_fieldmatch.c +++ b/libavfilter/vf_fieldmatch.c @@ -904,17 +904,24 @@ static av_cold int fieldmatch_init(AVFilterContext *ctx) .filter_frame = filter_frame, .config_props = config_input, }; + int ret; if (!pad.name) return AVERROR(ENOMEM); - ff_insert_inpad(ctx, INPUT_MAIN, &pad); + if ((ret = ff_insert_inpad(ctx, INPUT_MAIN, &pad)) < 0) { + av_freep(&pad.name); + return ret; + } if (fm->ppsrc) { pad.name = av_strdup("clean_src"); pad.config_props = NULL; if (!pad.name) return AVERROR(ENOMEM); - ff_insert_inpad(ctx, INPUT_CLEANSRC, &pad); + if ((ret = ff_insert_inpad(ctx, INPUT_CLEANSRC, &pad)) < 0) { + av_freep(&pad.name); + return ret; + } } if ((fm->blockx & (fm->blockx - 1)) ||