BUG/MINOR: config: fix leak on proxy.conn_src.bind_hdr_name
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 26 Jan 2021 13:35:22 +0000 (14:35 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Fri, 5 Feb 2021 11:21:43 +0000 (12:21 +0100)
Leak for parsing of option usesrc of the source keyword.

This can be backported to 1.8.

(cherry picked from commit 69c5c3ab330584f9c53e2cf7c86af371a84f104d)
Signed-off-by: Willy Tarreau <w@1wt.eu>
(cherry picked from commit 7edf20eb55282d86e78fa1c642975b4b8ffcbec4)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 50c1fa2e4c59e097b10ee4d7fab699e8a8a5e73b)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>

src/cfgparse-listen.c
src/haproxy.c

index 54243f6..add35a5 100644 (file)
@@ -3754,6 +3754,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);
index dd8854b..07bb670 100644 (file)
@@ -2577,6 +2577,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)