[dovecot-cvs] dovecot/src/login-common auth-connection.c,1.7,1.8

cras at procontrol.fi cras at procontrol.fi
Mon Feb 10 09:37:25 EET 2003


Update of /home/cvs/dovecot/src/login-common
In directory danu:/tmp/cvs-serv30667

Modified Files:
	auth-connection.c 
Log Message:
Crashfix.



Index: auth-connection.c
===================================================================
RCS file: /home/cvs/dovecot/src/login-common/auth-connection.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- auth-connection.c	8 Feb 2003 14:10:40 -0000	1.7
+++ auth-connection.c	10 Feb 2003 07:37:23 -0000	1.8
@@ -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)




More information about the dovecot-cvs mailing list