BUG/MAJOR: peers: fix a crash when stopping peers on unbound processes

Pradeep Jindal reported and troubleshooted a bug causing haproxy to die
during startup on all processes not making use of a peers section. It
only happens with nbproc > 1 when peers are declared. Technically it's
when the peers task is stopped on processes that don't use it that the
crash occurred (a task_free() called on a NULL task pointer).

This only affects peers v2 in the dev branch, no backport is needed.
This commit is contained in:
Willy Tarreau 2015-09-21 15:24:58 +02:00
parent 14a923cd2e
commit 37bb7be09c

View File

@ -1765,9 +1765,9 @@ static struct task *process_peer_sync(struct task * task)
if (!peers->peers_fe) {
/* this one was never started, kill it */
signal_unregister_handler(peers->sighandler);
peers->sync_task = NULL;
task_delete(peers->sync_task);
task_free(peers->sync_task);
peers->sync_task = NULL;
return NULL;
}