Fix a race condition in winbind leading to a crash
authorVolker Lendecke <vl@samba.org>
Fri, 25 Jul 2008 10:08:03 +0000 (12:08 +0200)
committerVolker Lendecke <vl@samba.org>
Fri, 25 Jul 2008 10:12:49 +0000 (12:12 +0200)
commit0f9c30c11421d045cace1f2c909fdb583ea830ba
treeccb52d64c949fa0e58f6b4a1a03fb164e5e45809
parent933fdd4017fb79539b23222c8f8b538e11133130
Fix a race condition in winbind leading to a crash

When SIGCHLD handling is delayed for some reason, sending a request to a child
can fail early because the child has died already. In this case
async_main_request_sent() directly called the continuation function without
properly removing the malfunctioning child process and the requests in the
queue. The next request would then crash in the DLIST_ADD_END() in
async_request() because the request pending for the child had been
talloc_free()'ed and yet still was referenced in the list.

This one is *old*...

Volker
(cherry picked from commit 8691709626b0d461de91b8fc9d10c730d1f183dd)
(This used to be commit c70e2b6476d2d99c79624e15a4a3cfcdc850fc7c)
source3/winbindd/winbindd_dual.c