From c04b94875082735cd6c083f7e62885700d297ef7 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Sat, 23 Dec 2006 02:26:18 +0000 Subject: r20330: And here's the fix for the parent winbindd crashing after it's child died unexpectedly whilst the parent was waiting for a reply. We need to clean up the request we're not going to service, plus we still need to call the continuation function with a "False" flag so it can clean things up. Still testing this, but I think I'm right. Jeremy (This used to be commit 9b04ac0c8104d626697978697d4d8bae791a7edd) --- source3/nsswitch/winbindd_dual.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'source3') diff --git a/source3/nsswitch/winbindd_dual.c b/source3/nsswitch/winbindd_dual.c index fc8a95dfc0..b72b7238b1 100644 --- a/source3/nsswitch/winbindd_dual.c +++ b/source3/nsswitch/winbindd_dual.c @@ -192,7 +192,12 @@ static void async_reply_recv(void *private_data, BOOL success) if (!success) { DEBUG(5, ("Could not receive async reply\n")); + + cache_cleanup_response(child->pid); + DLIST_REMOVE(child->requests, state); + state->response->result = WINBINDD_ERROR; + state->continuation(state->private_data, False); return; } -- cgit