]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: log: add free_logformat_node() helper function
authorAurelien DARRAGON <adarragon@haproxy.com>
Thu, 22 Feb 2024 14:03:29 +0000 (15:03 +0100)
committerAurelien DARRAGON <adarragon@haproxy.com>
Thu, 22 Feb 2024 14:32:42 +0000 (15:32 +0100)
Function may be used to free a single logformat node.

include/haproxy/log.h
src/log.c

index 9534eaeb23360b8973d050e9d536ae3c031d1dbe..9204410aac678ca97621bfd23f9514feec3b8c99 100644 (file)
@@ -66,6 +66,7 @@ void deinit_log_buffers(void);
 
 /* Deinitialize log buffers used for syslog messages */
 void free_logformat_list(struct list *fmt);
+void free_logformat_node(struct logformat_node *node);
 
 /* build a log line for the session and an optional stream */
 int sess_build_logline(struct session *sess, struct stream *s, char *dst, size_t maxsize, struct list *list_format);
index b0d02216437540452adeb3b253d7a76346b6d3e9..490a17e32deeef51c80efc0c6ccaa23a3c2058e4 100644 (file)
--- a/src/log.c
+++ b/src/log.c
@@ -2660,6 +2660,19 @@ void deinit_log_forward()
        }
 }
 
+/* Releases memory for a single log-format node */
+void free_logformat_node(struct logformat_node *node)
+{
+       if (!node)
+               return;
+
+       release_sample_expr(node->expr);
+       node->expr = NULL;
+       ha_free(&node->name);
+       ha_free(&node->arg);
+       ha_free(&node);
+}
+
 /* Releases memory allocated for a log-format string */
 void free_logformat_list(struct list *fmt)
 {
@@ -2670,10 +2683,7 @@ void free_logformat_list(struct list *fmt)
 
        list_for_each_entry_safe(lf, lfb, fmt, list) {
                LIST_DELETE(&lf->list);
-               release_sample_expr(lf->expr);
-               free(lf->name);
-               free(lf->arg);
-               free(lf);
+               free_logformat_node(lf);
        }
 }