Mercurial > dovecot > core-2.2
diff src/lib-master/master-login-auth.c @ 11248:1fd45deee948 HEAD
lib-master: Don't crash after timeouting an auth-master request.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 03 May 2010 16:01:09 +0300 |
parents | 0979e9e1e124 |
children | e08dd68309a9 |
line wrap: on
line diff
--- a/src/lib-master/master-login-auth.c Fri Apr 30 19:14:57 2010 +0300 +++ b/src/lib-master/master-login-auth.c Mon May 03 16:01:09 2010 +0300 @@ -20,7 +20,9 @@ struct master_login_auth_request { struct master_login_auth_request *prev, *next; + unsigned int id; time_t create_stamp; + master_login_auth_request_callback_t *callback; void *context; }; @@ -131,6 +133,7 @@ request = auth->request_head; DLLIST2_REMOVE(&auth->request_head, &auth->request_tail, request); + hash_table_remove(auth->requests, POINTER_CAST(request->id)); i_error("Auth server request timed out after %u secs", (unsigned int)(ioloop_time - request->create_stamp)); @@ -360,6 +363,7 @@ login_req = i_new(struct master_login_auth_request, 1); login_req->create_stamp = ioloop_time; + login_req->id = id; login_req->callback = callback; login_req->context = context; hash_table_insert(auth->requests, POINTER_CAST(id), login_req);