Mercurial > dovecot > original-hg > dovecot-1.2
changeset 3938:f55438f449ba HEAD
Don't crash if unknown child exits.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Wed, 25 Jan 2006 19:24:42 +0200 |
parents | 5f86377d3683 |
children | 8ccd711c93db |
files | src/auth/passdb-checkpassword.c |
diffstat | 1 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/passdb-checkpassword.c Tue Jan 24 20:49:16 2006 +0200 +++ b/src/auth/passdb-checkpassword.c Wed Jan 25 19:24:42 2006 +0200 @@ -139,11 +139,20 @@ } request = hash_lookup(module->clients, POINTER_CAST(pid)); + if (request == NULL) { + /* unknown child finished */ + if (WIFSIGNALED(status)) { + i_error("checkpassword: Unknown child %s died " + "with signal %d", dec2str(pid), + WTERMSIG(status)); + } + continue; + } if (WIFSIGNALED(status)) { i_error("checkpassword: Child %s died with signal %d", dec2str(pid), WTERMSIG(status)); - } else if (WIFEXITED(status) && request != NULL) { + } else if (WIFEXITED(status)) { auth_request_log_debug(request->request, "checkpassword", "exit_status=%d", request->exit_status); @@ -153,6 +162,7 @@ checkpassword_request_half_finish(request); request = NULL; } else { + /* shouldn't happen */ auth_request_log_debug(request->request, "checkpassword", "Child exited with status=%d", status);