diff options
author | Jeremy Allison <jra@samba.org> | 2006-12-23 02:26:18 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:16:41 -0500 |
commit | c04b94875082735cd6c083f7e62885700d297ef7 (patch) | |
tree | 23afaadc4854b9cb11618c572135ae6665372256 | |
parent | ad325a7905ada39d2fa6093880113dc834b56a43 (diff) | |
download | samba-c04b94875082735cd6c083f7e62885700d297ef7.tar.gz samba-c04b94875082735cd6c083f7e62885700d297ef7.tar.bz2 samba-c04b94875082735cd6c083f7e62885700d297ef7.zip |
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)
-rw-r--r-- | source3/nsswitch/winbindd_dual.c | 5 |
1 files changed, 5 insertions, 0 deletions
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; } |