]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: log: fix potential memory leak upon error in add_to_logformat_list()
authorAurelien DARRAGON <adarragon@haproxy.com>
Thu, 4 Sep 2025 08:26:37 +0000 (10:26 +0200)
committerAurelien DARRAGON <adarragon@haproxy.com>
Thu, 4 Sep 2025 21:07:22 +0000 (23:07 +0200)
As reported on GH #3099, upon memory error add_to_logformat_list() will
return and error but it fails to properly memory which was allocated
within the function, which could result in memory leak.

Let's free all relevant variables allocated by the function before returning.

No backport needed unless 22ac1f5ee ("("BUG/MINOR: log: Add OOM checks for
calloc() and malloc() in logformat parser and dup_logger()") is.

src/log.c

index c7acb5b2966b5dc269ced57fdc1ec1aa4f5e2e9f..c0d4392391b9dee4868bbf87ac349a415e5a5cb5 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -575,6 +575,8 @@ int add_to_logformat_list(char *start, char *end, int type, struct lf_expr *lf_e
                struct logformat_node *node = calloc(1, sizeof(*node));
                str = calloc(1, end - start + 1);
                if (unlikely(!node || !str)) {
+                       free(node);
+                       free(str);
                        memprintf(err, "out of memory error");
                        return 0;
                }