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)