[FFmpeg-devel] [PATCH 4/8] avfilter/aeval: Fix leak of expressions upon reallocation error
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Thu Oct 7 12:31:24 EEST 2021
Fix this by switching to av_dynarray_add_nofree() which is more
natural anyway because the entries of the array are pointers.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
libavfilter/aeval.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/libavfilter/aeval.c b/libavfilter/aeval.c
index 2dc8bace51..42cfa81325 100644
--- a/libavfilter/aeval.c
+++ b/libavfilter/aeval.c
@@ -124,11 +124,10 @@ static int parse_channel_expressions(AVFilterContext *ctx,
}
#define ADD_EXPRESSION(expr_) do { \
- if (!av_dynarray2_add((void **)&eval->expr, &eval->nb_channels, \
- sizeof(*eval->expr), NULL)) { \
- ret = AVERROR(ENOMEM); \
+ ret = av_dynarray_add_nofree(&eval->expr, \
+ &eval->nb_channels, NULL); \
+ if (ret < 0) \
goto end; \
- } \
eval->expr[eval->nb_channels-1] = NULL; \
ret = av_expr_parse(&eval->expr[eval->nb_channels - 1], expr_, \
var_names, func1_names, func1, \
--
2.30.2
More information about the ffmpeg-devel
mailing list