From 7c49711d6041d1afc42d5b310ddfd7d6f6817c3c Mon Sep 17 00:00:00 2001 From: Olivier Houchard Date: Thu, 7 Mar 2019 14:19:24 +0100 Subject: [PATCH] BUG/MEDIUM: logs: Only attempt to free startup_logs once. deinit_log_buffers() can be called once per thread, however startup_logs is common to all threads. So only attempt to free it once. This should be backported to 1.9 and 1.8. --- src/log.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/log.c b/src/log.c index a4cedcc5a..826f50e45 100644 --- a/src/log.c +++ b/src/log.c @@ -1692,11 +1692,15 @@ int init_log_buffers() /* Deinitialize log buffers used for syslog messages */ void deinit_log_buffers() { + void *tmp_startup_logs; + free(logheader); free(logheader_rfc5424); free(logline); free(logline_rfc5424); - free(startup_logs); + tmp_startup_logs = HA_ATOMIC_XCHG(&startup_logs, NULL); + free(tmp_startup_logs); + logheader = NULL; logheader_rfc5424 = NULL; logline = NULL;