Mercurial > dovecot > original-hg > dovecot-1.2
changeset 4430:94b3bb847f39 HEAD
If checkpassword lookup failed, we crashed. auth_debug logged checkpassword's exit_status wrong.
author | Timo Sirainen <timo.sirainen@movial.fi> |
---|---|
date | Tue, 20 Jun 2006 16:59:05 +0300 |
parents | c58659bf7ca5 |
children | 2461061327ed |
files | src/auth/passdb-checkpassword.c |
diffstat | 1 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/auth/passdb-checkpassword.c Tue Jun 20 16:13:47 2006 +0300 +++ b/src/auth/passdb-checkpassword.c Tue Jun 20 16:59:05 2006 +0300 @@ -67,7 +67,8 @@ hash_remove(module->clients, POINTER_CAST(request->pid)); - if (strchr(str_c(request->input_buf), '\n') != NULL) { + if (request->input_buf != NULL && + strchr(str_c(request->input_buf), '\n') != NULL) { auth_request_log_error(request->request, "checkpassword", "LF characters in checkpassword reply"); result = PASSDB_RESULT_INTERNAL_FAILURE; @@ -160,12 +161,13 @@ i_error("checkpassword: Child %s died with signal %d", dec2str(pid), WTERMSIG(status)); } else if (WIFEXITED(status)) { + request->exited = TRUE; + request->exit_status = WEXITSTATUS(status); + auth_request_log_debug(request->request, "checkpassword", "exit_status=%d", request->exit_status); - request->exited = TRUE; - request->exit_status = WEXITSTATUS(status); checkpassword_request_half_finish(request); request = NULL; } else {