BUG/MINOR: log: fix potential memory leak upon error in add_to_logformat_list()

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.
This commit is contained in:
Aurelien DARRAGON 2025-09-04 10:26:37 +02:00
parent 842f32f3f1
commit c97ced3f93

View File

@ -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)); struct logformat_node *node = calloc(1, sizeof(*node));
str = calloc(1, end - start + 1); str = calloc(1, end - start + 1);
if (unlikely(!node || !str)) { if (unlikely(!node || !str)) {
free(node);
free(str);
memprintf(err, "out of memory error"); memprintf(err, "out of memory error");
return 0; return 0;
} }