diff --git a/include/haproxy/log.h b/include/haproxy/log.h
index 49fbe5b..ac839c3 100644
--- a/include/haproxy/log.h
+++ b/include/haproxy/log.h
@@ -86,6 +86,8 @@
  */
 int parse_logformat_string(const char *str, struct proxy *curproxy, struct list *list_format, int options, int cap, char **err);
 
+void free_logsrv(struct logsrv *logsrv);
+
 /* Parse "log" keyword and update the linked list. */
 int parse_logsrv(char **args, struct list *logsrvs, int do_del, const char *file, int linenum, char **err);
 
diff --git a/src/http_client.c b/src/http_client.c
index 5a3d8a4..f5a2993 100644
--- a/src/http_client.c
+++ b/src/http_client.c
@@ -1075,6 +1075,9 @@
 		memcpy(node, logsrv, sizeof(*node));
 		LIST_INIT(&node->list);
 		LIST_APPEND(&curproxy->logsrvs, &node->list);
+		node->ring_name = NULL;
+		node->conf.file = NULL;
+		node->conf.line = 0;
 	}
 	if (curproxy->conf.logformat_string) {
 		curproxy->conf.args.ctx = ARGC_LOG;
diff --git a/src/log.c b/src/log.c
index 3e20c1c..9952aaa 100644
--- a/src/log.c
+++ b/src/log.c
@@ -733,6 +733,21 @@
 	return 0;
 }
 
+/* frees log server <logsrv> after freeing all of its allocated fields. The
+ * server must not belong to a list anymore. Logsrv may be NULL, which is
+ * silently ignored.
+ */
+void free_logsrv(struct logsrv *logsrv)
+{
+	if (!logsrv)
+		return;
+
+	BUG_ON(LIST_INLIST(&logsrv->list));
+	ha_free(&logsrv->conf.file);
+	ha_free(&logsrv->ring_name);
+	free(logsrv);
+}
+
 /*
  * Parse "log" keyword and update <logsrvs> list accordingly.
  *
@@ -769,8 +784,8 @@
 		}
 
 		list_for_each_entry_safe(logsrv, back, logsrvs, list) {
-			LIST_DELETE(&logsrv->list);
-			free(logsrv);
+			LIST_DEL_INIT(&logsrv->list);
+			free_logsrv(logsrv);
 		}
 		return 1;
 	}
@@ -797,6 +812,7 @@
 			node->ref = logsrv;
 			LIST_INIT(&node->list);
 			LIST_APPEND(logsrvs, &node->list);
+			node->ring_name = logsrv->ring_name ? strdup(logsrv->ring_name) : NULL;
 			node->conf.file = strdup(file);
 			node->conf.line = linenum;
 
@@ -1007,11 +1023,7 @@
 
   error:
 	free(smp_rgs);
-	if (logsrv) {
-		free(logsrv->conf.file);
-		free(logsrv->ring_name);
-	}
-	free(logsrv);
+	free_logsrv(logsrv);
 	return 0;
 }
 
diff --git a/src/proxy.c b/src/proxy.c
index e45df8c..3ff2035 100644
--- a/src/proxy.c
+++ b/src/proxy.c
@@ -237,8 +237,8 @@
 	}
 
 	list_for_each_entry_safe(log, logb, &p->logsrvs, list) {
-		LIST_DELETE(&log->list);
-		free(log);
+		LIST_DEL_INIT(&log->list);
+		free_logsrv(log);
 	}
 
 	list_for_each_entry_safe(lf, lfb, &p->logformat, list) {
@@ -1424,6 +1424,7 @@
 void proxy_free_defaults(struct proxy *defproxy)
 {
 	struct acl *acl, *aclb;
+	struct logsrv *log, *logb;
 
 	ha_free(&defproxy->id);
 	ha_free(&defproxy->conf.file);
@@ -1467,6 +1468,11 @@
 	if (defproxy->conf.logformat_sd_string != default_rfc5424_sd_log_format)
 		ha_free(&defproxy->conf.logformat_sd_string);
 
+	list_for_each_entry_safe(log, logb, &defproxy->logsrvs, list) {
+		LIST_DEL_INIT(&log->list);
+		free_logsrv(log);
+	}
+
 	ha_free(&defproxy->conf.uniqueid_format_string);
 	ha_free(&defproxy->conf.error_logformat_string);
 	ha_free(&defproxy->conf.lfs_file);
@@ -1773,6 +1779,9 @@
 		node->ref = tmplogsrv->ref;
 		LIST_INIT(&node->list);
 		LIST_APPEND(&curproxy->logsrvs, &node->list);
+		node->ring_name = tmplogsrv->ring_name ? strdup(tmplogsrv->ring_name) : NULL;
+		node->conf.file = strdup(tmplogsrv->conf.file);
+		node->conf.line = tmplogsrv->conf.line;
 	}
 
 	curproxy->conf.uniqueid_format_string = defproxy->conf.uniqueid_format_string;
