BUG/MINOR: config: clear proxy->table.peers.p for disabled proxies
authorWilly Tarreau <w@1wt.eu>
Fri, 1 May 2015 17:59:56 +0000 (19:59 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 1 May 2015 18:05:25 +0000 (20:05 +0200)
If a table in a disabled proxy references a peers section, the peers
name is not resolved to a pointer to a table, but since it belongs to
a union, it can later be dereferenced. Right now it seems it cannot
happen, but it definitely will after the pending changes.

It doesn't cost anything to backport this into 1.5, it will make gdb
sessions less head-scratching.

src/cfgparse.c

index 8ab7da9..ce0517c 100644 (file)
@@ -6492,6 +6492,8 @@ int check_config_validity()
                if (curproxy->state == PR_STSTOPPED) {
                        /* ensure we don't keep listeners uselessly bound */
                        stop_proxy(curproxy);
+                       free((void *)curproxy->table.peers.name);
+                       curproxy->table.peers.p = NULL;
                        continue;
                }