From: Ondrej Zajicek Date: Sat, 21 Feb 2015 11:27:05 +0000 (+0100) Subject: Fixes a bug in locking code. X-Git-Tag: v1.5.0~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab006391305165c805f75e3a2ce20946748233c9;p=thirdparty%2Fbird.git Fixes a bug in locking code. When multiple protocols have a lock for the same IP address, it crashes under some circumstances. Thanks to Matthias Schiffer for the bugreport. --- diff --git a/nest/locks.c b/nest/locks.c index c74f2f45d..ad2af4938 100644 --- a/nest/locks.c +++ b/nest/locks.c @@ -70,7 +70,7 @@ olock_free(resource *r) DBG("olock: -> %p becomes locked\n", n); q = SKIP_BACK(struct object_lock, n, n); rem_node(n); - add_tail_list(&l->waiters, &q->waiters); + add_tail_list(&q->waiters, &l->waiters); q->state = OLOCK_STATE_EVENT; add_head(&olock_list, n); ev_schedule(olock_event);