Baptiste Assmann reported that a config where a non-existing peers
section is referenced by a stick-table causes a segfault after displaying
the error. This is caused by the freeing of the peers. Setting it to NULL
after displaying the error fixes the issue.
if (!curpeers) {
Alert("Proxy '%s': unable to find sync peers '%s'.\n",
curproxy->id, curproxy->table.peers.name);
+ free((void *)curproxy->table.peers.name);
+ curproxy->table.peers.p = NULL;
cfgerr++;
}
else if (!curpeers->peers_fe) {
Alert("Proxy '%s': unable to find local peer '%s' in peers section '%s'.\n",
curproxy->id, localpeer, curpeers->id);
+ free((void *)curproxy->table.peers.name);
+ curproxy->table.peers.p = NULL;
cfgerr++;
}
}