From 54c88770d37ce28077dd4a20b8ffbb54a56cca8b Mon Sep 17 00:00:00 2001 From: Remi Tricot-Le Breton Date: Tue, 12 Jan 2021 14:55:12 +0100 Subject: [PATCH] BUG/MINOR: sample: Memory leak of sample_expr structure in case of error If an errors occurs during the sample expression parsing, the alloced sample_expr is not freed despite having its main pointer reset. This fixes GitHub issue #1046. It could be backported as far as 1.8. (cherry picked from commit 22e0d9b39cfb238e7bf866b3d78aa9b393004508) Signed-off-by: Christopher Faulet --- src/sample.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sample.c b/src/sample.c index d36efbc..b38cc6a 100644 --- a/src/sample.c +++ b/src/sample.c @@ -836,7 +836,7 @@ struct sample_expr *sample_parse_expr(char **str, int *idx, const char *file, in const char *begw; /* beginning of word */ const char *endw; /* end of word */ const char *endt; /* end of term */ - struct sample_expr *expr; + struct sample_expr *expr = NULL; struct sample_fetch *fetch; struct sample_conv *conv; unsigned long prev_type; @@ -1019,7 +1019,7 @@ struct sample_expr *sample_parse_expr(char **str, int *idx, const char *file, in return expr; out_error: - /* TODO: prune_sample_expr(expr); */ + release_sample_expr(expr); expr = NULL; goto out; } -- 1.7.10.4