MINOR: logs: Use dedicated function to init/deinit log buffers

Now, we use init_log_buffers and deinit_log_buffers to, respectively, initialize
and deinitialize log buffers used for syslog messages.

These functions have been introduced to be used by threads, to deal with
thread-local log buffers.
diff --git a/include/proto/log.h b/include/proto/log.h
index 2d4ca84..72ff744 100644
--- a/include/proto/log.h
+++ b/include/proto/log.h
@@ -53,6 +53,11 @@
  */
 void init_log();
 
+
+/* Initialize/Deinitialize log buffers used for syslog messages */
+int init_log_buffers();
+void deinit_log_buffers();
+
 /*
  * Builds a log line.
  */
diff --git a/src/cfgparse.c b/src/cfgparse.c
index c2115e6..d491560 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -1420,10 +1420,11 @@
 
 		if (logsrv->maxlen > global.max_syslog_len) {
 			global.max_syslog_len = logsrv->maxlen;
-			logheader = my_realloc2(logheader, global.max_syslog_len + 1);
-			logheader_rfc5424 = my_realloc2(logheader_rfc5424, global.max_syslog_len + 1);
-			logline = my_realloc2(logline, global.max_syslog_len + 1);
-			logline_rfc5424 = my_realloc2(logline_rfc5424, global.max_syslog_len + 1);
+			if (!init_log_buffers()) {
+				Alert("parsing [%s:%d] : failed to initialize log buffers.\n", file, linenum);
+				err_code |= ERR_ALERT | ERR_FATAL;
+				goto out;
+			}
 		}
 
 		/* after the length, a format may be specified */
@@ -6082,10 +6083,11 @@
 
 			if (logsrv->maxlen > global.max_syslog_len) {
 				global.max_syslog_len = logsrv->maxlen;
-				logheader = my_realloc2(logheader, global.max_syslog_len + 1);
-				logheader_rfc5424 = my_realloc2(logheader_rfc5424, global.max_syslog_len + 1);
-				logline = my_realloc2(logline, global.max_syslog_len + 1);
-				logline_rfc5424 = my_realloc2(logline_rfc5424, global.max_syslog_len + 1);
+				if (!init_log_buffers()) {
+					Alert("parsing [%s:%d] : failed to initialize log buffers.\n", file, linenum);
+					err_code |= ERR_ALERT | ERR_FATAL;
+					goto out;
+				}
 			}
 
 			/* after the length, a format may be specified */
diff --git a/src/haproxy.c b/src/haproxy.c
index efc4da5..7c925ea 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2107,6 +2107,7 @@
 
 	cfg_unregister_sections();
 
+	deinit_log_buffers();
 	deinit_trash_buffers();
 
 	protocol_unbind_all();
diff --git a/src/log.c b/src/log.c
index e9a8a7d..5c42f6b 100644
--- a/src/log.c
+++ b/src/log.c
@@ -1322,6 +1322,31 @@
 	}
 }
 
+/* Initialize log buffers used for syslog messages */
+int init_log_buffers()
+{
+	logheader = my_realloc2(logheader, global.max_syslog_len + 1);
+	logheader_rfc5424 = my_realloc2(logheader_rfc5424, global.max_syslog_len + 1);
+	logline = my_realloc2(logline, global.max_syslog_len + 1);
+	logline_rfc5424 = my_realloc2(logline_rfc5424, global.max_syslog_len + 1);
+	if (!logheader || !logline_rfc5424 || !logline || !logline_rfc5424)
+		return 0;
+	return 1;
+}
+
+/* Deinitialize log buffers used for syslog messages */
+void deinit_log_buffers()
+{
+	free(logheader);
+	free(logheader_rfc5424);
+	free(logline);
+	free(logline_rfc5424);
+	logheader         = NULL;
+	logheader_rfc5424 = NULL;
+	logline           = NULL;
+	logline_rfc5424   = NULL;
+}
+
 /* Builds a log line in <dst> based on <list_format>, and stops before reaching
  * <maxsize> characters. Returns the size of the output string in characters,
  * not counting the trailing zero which is always added if the resulting size