From: Remi Tricot-Le Breton Date: Tue, 12 Jan 2021 13:55:12 +0000 (+0100) Subject: BUG/MINOR: sample: Memory leak of sample_expr structure in case of error X-Git-Tag: v2.4-dev6~67 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=22e0d9b39cfb238e7bf866b3d78aa9b393004508;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/sample.c b/src/sample.c index 7e4a0d0609..bf2de2a252 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; }