]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MAJOR: peers: fix a crash when stopping peers on unbound processes
authorWilly Tarreau <w@1wt.eu>
Mon, 21 Sep 2015 13:24:58 +0000 (15:24 +0200)
committerWilly Tarreau <w@1wt.eu>
Mon, 21 Sep 2015 13:24:58 +0000 (15:24 +0200)
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.

src/peers.c

index f628a7f36c174bc3377deb6b1b9eb2886e216edf..a40591831f6ceb46ba838aee948083531d4a6bac 100644 (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;
        }