From 22e0d9b39cfb238e7bf866b3d78aa9b393004508 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. --- src/sample.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sample.c b/src/sample.c index 7e4a0d0..bf2de2a 100644 --- a/src/sample.c +++ b/src/sample.c @@ -839,7 +839,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; @@ -1022,7 +1022,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