From: Timo Sirainen Date: Fri, 22 Aug 2003 06:51:15 +0000 (+0300) Subject: fixes X-Git-Tag: 1.1.alpha1~4394 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bbef8d37812f877525ca57e7ed206094e1efe288;p=thirdparty%2Fdovecot%2Fcore.git fixes --HG-- branch : HEAD --- diff --git a/src/auth/auth-master-connection.c b/src/auth/auth-master-connection.c index d717895185..f5f99862f6 100644 --- a/src/auth/auth-master-connection.c +++ b/src/auth/auth-master-connection.c @@ -153,7 +153,7 @@ static void master_handle_request(struct auth_master_connection *conn, master_request); /* the auth request is finished, we don't need it anymore */ - mech_request_free(client_conn, auth_request, request->id); + mech_request_free(auth_request, request->id); } } diff --git a/src/auth/mech.c b/src/auth/mech.c index 25fb2407cd..9b3d35c5af 100644 --- a/src/auth/mech.c +++ b/src/auth/mech.c @@ -120,15 +120,17 @@ void mech_request_continue(struct auth_client_connection *conn, } else { if (!auth_request->auth_continue(auth_request, request, data, callback)) - mech_request_free(conn, auth_request, request->id); + mech_request_free(auth_request, request->id); } } -void mech_request_free(struct auth_client_connection *conn, - struct auth_request *auth_request, unsigned int id) +void mech_request_free(struct auth_request *auth_request, unsigned int id) { + if (auth_request->conn != NULL) { + hash_remove(auth_request->conn->auth_requests, + POINTER_CAST(id)); + } auth_request_unref(auth_request); - hash_remove(conn->auth_requests, POINTER_CAST(id)); } void mech_init_auth_client_reply(struct auth_client_request_reply *reply) @@ -182,10 +184,8 @@ void mech_auth_finish(struct auth_request *auth_request, auth_request->callback(&reply, reply_data, auth_request->conn); - if (!success) { - mech_request_free(auth_request->conn, auth_request, - auth_request->id); - } + if (!success) + mech_request_free(auth_request, auth_request->id); } int mech_is_valid_username(const char *username) diff --git a/src/auth/mech.h b/src/auth/mech.h index 2322e29d6d..cb50688cba 100644 --- a/src/auth/mech.h +++ b/src/auth/mech.h @@ -54,8 +54,7 @@ void mech_request_continue(struct auth_client_connection *conn, struct auth_client_request_continue *request, const unsigned char *data, mech_callback_t *callback); -void mech_request_free(struct auth_client_connection *conn, - struct auth_request *auth_request, unsigned int id); +void mech_request_free(struct auth_request *auth_request, unsigned int id); void mech_init_auth_client_reply(struct auth_client_request_reply *reply); void *mech_auth_success(struct auth_client_request_reply *reply,