From a731e4103b87cb02b763f2e3f73cc43c72bdf65f Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 2 Sep 2013 15:06:46 -0400 Subject: fix invalid pointer in synccall (multithread setuid, etc.) the head pointer was not being reset between calls to synccall, so any use of this interface more than once would build the linked list incorrectly, keeping the (now invalid) list nodes from the previous call. --- src/thread/synccall.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/thread/synccall.c b/src/thread/synccall.c index 706c8e73..c54570be 100644 --- a/src/thread/synccall.c +++ b/src/thread/synccall.c @@ -58,6 +58,7 @@ void __synccall(void (*func)(void *), void *ctx) sem_init(&chaindone, 0, 0); sem_init(&chainlock, 0, 1); chainlen = 0; + head = 0; callback = func; context = ctx; -- cgit v1.2.1