diff --git a/auth/auth.c b/auth/auth.c index 3c5fa86..737fd98 100644 --- a/auth/auth.c +++ b/auth/auth.c @@ -294,20 +294,21 @@ S_auth_user_authenticate (struct authhandle *userauth, s = hurd_ihash_find (&pending_servers, rendezvous); if (s) { /* Found it! Extract the port. */ *newport = s->passthrough; *newporttype = MACH_MSG_TYPE_MOVE_SEND; /* Remove it from the pending list. */ hurd_ihash_locp_remove (&pending_servers, s->locp); + error_t err2 = mach_port_request_notification(mach_task_self(), rendezvous, MACH_NOTIFY_DEAD_NAME, 0, MACH_PORT_NULL, MACH_MSG_TYPE_MAKE_SEND_ONCE, &old); /* Give the server the auth port and wake the RPC up. We need to add a ref in case the port dies. */ s->user = userauth; ports_port_ref (userauth); condition_signal (&s->wakeup); mutex_unlock (&pending_lock); mach_port_deallocate (mach_task_self (), rendezvous); return 0;