summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmaury Denoyelle <adenoyelle@haproxy.com>2021-01-26 14:35:22 +0100
committerWilly Tarreau <w@1wt.eu>2021-01-26 14:48:39 +0100
commit69c5c3ab330584f9c53e2cf7c86af371a84f104d (patch)
tree092cc6fd49ccba7c59b0d9989c4055691c2d4c44
parent6071c2d12dd2ff1f5876a2ace313a81259f211cd (diff)
downloadhaproxy-69c5c3ab330584f9c53e2cf7c86af371a84f104d.tar.gz
BUG/MINOR: config: fix leak on proxy.conn_src.bind_hdr_name
Leak for parsing of option usesrc of the source keyword. This can be backported to 1.8.
-rw-r--r--src/cfgparse-listen.c1
-rw-r--r--src/haproxy.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/src/cfgparse-listen.c b/src/cfgparse-listen.c
index 588ff9704..689a28eb3 100644
--- a/src/cfgparse-listen.c
+++ b/src/cfgparse-listen.c
@@ -2915,6 +2915,7 @@ stats_error_parsing:
curproxy->conn_src.opts &= ~CO_SRC_TPROXY_MASK;
curproxy->conn_src.opts |= CO_SRC_TPROXY_DYN;
+ free(curproxy->conn_src.bind_hdr_name);
curproxy->conn_src.bind_hdr_name = calloc(1, end - name + 1);
curproxy->conn_src.bind_hdr_len = end - name;
memcpy(curproxy->conn_src.bind_hdr_name, name, end - name);
diff --git a/src/haproxy.c b/src/haproxy.c
index e36e020c5..cdbc3dc96 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2503,6 +2503,9 @@ void deinit(void)
free(p->rdp_cookie_name);
free(p->invalid_rep);
free(p->invalid_req);
+#if defined(CONFIG_HAP_TRANSPARENT)
+ free(p->conn_src.bind_hdr_name);
+#endif
if (p->conf.logformat_string != default_http_log_format &&
p->conf.logformat_string != default_tcp_log_format &&
p->conf.logformat_string != clf_http_log_format)