diff --git a/src/proxy.c b/src/proxy.c index 0bac0898f..3e126378f 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -1517,6 +1517,7 @@ void proxy_free_defaults(struct proxy *defproxy) ha_free(&defproxy->id); ha_free(&defproxy->conf.file); + ha_free((char **)&defproxy->defsrv.conf.file); ha_free(&defproxy->check_command); ha_free(&defproxy->check_path); ha_free(&defproxy->cookie_name); diff --git a/src/server.c b/src/server.c index 138d69272..78c3b532d 100644 --- a/src/server.c +++ b/src/server.c @@ -3292,7 +3292,8 @@ int parse_server(const char *file, int linenum, char **args, if (err_code & ERR_CODE) goto out; - newsrv->conf.file = strdup(file); + if (!newsrv->conf.file) // note: do it only once for default-server + newsrv->conf.file = strdup(file); newsrv->conf.line = linenum; while (*args[cur_arg]) {