BUG/MINOR: log: fix regression introduced by commit 8a3f52

The commit above improved error reporting during log parsing, but as
a result, some shared strings such as httplog_format are truncated
during parsing. This is observable upon startup because the second
proxy to use httplog emits a warning.

Let's have the logformat parser duplicate the string while parsing it.
diff --git a/src/log.c b/src/log.c
index ae7d122..1988a13 100644
--- a/src/log.c
+++ b/src/log.c
@@ -359,9 +359,9 @@
  *  list_format: the destination list
  *  capabilities: PR_MODE_TCP_ | PR_MODE_HTTP
  */
-void parse_logformat_string(char *str, struct proxy *curproxy, struct list *list_format, int capabilities)
+void parse_logformat_string(char *fmt, struct proxy *curproxy, struct list *list_format, int capabilities)
 {
-	char *sp = str; /* start pointer for text parts */
+	char *sp, *str; /* start pointer for text parts */
 	char *arg = NULL; /* start pointer for args */
 	char *var = NULL; /* start pointer for vars */
 	int arg_len = 0;
@@ -371,6 +371,7 @@
 	struct logformat_node *tmplf, *back;
 	int options = 0;
 
+	sp = str = fmt = strdup(fmt);
 	curproxy->to_log |= LW_INIT;
 
 	/* flush the list first. */
@@ -481,6 +482,8 @@
 
 	if (pformat == LF_STARTVAR || pformat == LF_STARG || pformat == LF_STEXPR)
 		Warning("Ignoring end of truncated log-format line after '%s'\n", var ? var : arg ? arg : "%");
+
+	free(fmt);
 }
 
 /*