From b343188cd866f6fda1b248ac2a098fb0729492c2 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 25 Aug 2020 00:20:35 +0200 Subject: [PATCH] avfilter/vf_signature: Fix leak of string upon error If an error happens between allocating a string intended to be used as an inpad's name and attaching it to its input pad, the string leaks. Fix this by inserting the inpad directly after allocating its string. Reviewed-by: Paul B Mahol Signed-off-by: Andreas Rheinhardt (cherry picked from commit 16ea88778e6f4e2d49318ea6e02fa938ac2f401e) --- libavfilter/vf_signature.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/libavfilter/vf_signature.c b/libavfilter/vf_signature.c index 80a5a6951f..bb4dc02e14 100644 --- a/libavfilter/vf_signature.c +++ b/libavfilter/vf_signature.c @@ -664,6 +664,10 @@ static av_cold int init(AVFilterContext *ctx) if (!pad.name) return AVERROR(ENOMEM); + if ((ret = ff_insert_inpad(ctx, i, &pad)) < 0) { + av_freep(&pad.name); + return ret; + } sc = &(sic->streamcontexts[i]); @@ -680,11 +684,6 @@ static av_cold int init(AVFilterContext *ctx) sc->coarseend = sc->coarsesiglist; sc->coarsecount = 0; sc->midcoarse = 0; - - if ((ret = ff_insert_inpad(ctx, i, &pad)) < 0) { - av_freep(&pad.name); - return ret; - } } /* check filename */