Mercurial > dovecot > original-hg > dovecot-1.2
changeset 1132:50727d444717 HEAD
Crashfix.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 10 Feb 2003 09:37:23 +0200 |
parents | 817718515e5f |
children | f6889bb50a7f |
files | src/login-common/auth-connection.c |
diffstat | 1 files changed, 10 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/login-common/auth-connection.c Mon Feb 10 09:30:57 2003 +0200 +++ b/src/login-common/auth-connection.c Mon Feb 10 09:37:23 2003 +0200 @@ -87,12 +87,6 @@ return conn; } -static void request_destroy(struct auth_request *request) -{ - hash_remove(request->conn->requests, POINTER_CAST(request->id)); - i_free(request); -} - static void request_hash_remove(void *key __attr_unused__, void *value, void *context __attr_unused__) { @@ -106,7 +100,7 @@ { struct auth_request *request = value; - request_destroy(request); + i_free(request); } static void auth_connection_destroy(struct auth_connection *conn) @@ -219,8 +213,10 @@ request->callback(request, reply, data, request->context); - if (reply->result != AUTH_LOGIN_RESULT_CONTINUE) - request_destroy(request); + if (reply->result != AUTH_LOGIN_RESULT_CONTINUE) { + hash_remove(conn->requests, POINTER_CAST(request->id)); + i_free(request); + } } static void auth_input(void *context) @@ -346,7 +342,11 @@ void auth_abort_request(struct auth_request *request) { - request_destroy(request); + void *id = POINTER_CAST(request->id); + + if (hash_lookup(request->conn->requests, id) != NULL) + hash_remove(request->conn->requests, id); + i_free(request); } void auth_request_ref(struct auth_request *request)