[FFmpeg-devel] [PATCH 02/19] avfilter/af_anequalizer: Fix memleak when inserting pad fails
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Tue Aug 25 17:09:10 EEST 2020
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.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
---
libavfilter/af_anequalizer.c | 16 ++++++----------
1 file 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);
--
2.20.1
More information about the ffmpeg-devel
mailing list