[dovecot-cvs] dovecot/src/auth passdb-checkpassword.c,1.13,1.14
cras at dovecot.org
cras at dovecot.org
Wed Jan 25 19:24:44 EET 2006
Update of /var/lib/cvs/dovecot/src/auth
In directory talvi:/tmp/cvs-serv29028
Modified Files:
passdb-checkpassword.c
Log Message:
Don't crash if unknown child exits.
Index: passdb-checkpassword.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/auth/passdb-checkpassword.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- passdb-checkpassword.c 14 Jan 2006 18:47:20 -0000 1.13
+++ passdb-checkpassword.c 25 Jan 2006 17:24:42 -0000 1.14
@@ -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);
More information about the dovecot-cvs
mailing list