summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-08-22 03:23:51 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-02-27 07:20:57 +0100
commit07fb367737e1eb933f009852f9d8cff45a76ea34 (patch)
tree46a48e60835f1fc71d6364aaf591d5c48585a810 /libavfilter
parent7316177a44fcd325dff8d19a382c83a51f1dfacc (diff)
downloadffmpeg-07fb367737e1eb933f009852f9d8cff45a76ea34.tar.gz
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> (cherry picked from commit fdbd579fd10bc80c0f4e5a86497a4aa2e00317c5)
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/af_anequalizer.c16
1 files changed, 6 insertions, 10 deletions
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);