changeset 4768:4e99f8e7e9bd HEAD

If client disconnects before logging into remote server is complete, don't crash/leak memory.
author Timo Sirainen <tss@iki.fi>
date Tue, 07 Nov 2006 16:01:19 +0200
parents f7fa27e435ef
children e67acfeb2fd5
files src/imap-login/imap-proxy.c
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap-login/imap-proxy.c	Tue Nov 07 15:59:31 2006 +0200
+++ b/src/imap-login/imap-proxy.c	Tue Nov 07 16:01:19 2006 +0200
@@ -15,6 +15,15 @@
 {
 	string_t *str;
 
+	if (client->destroyed) {
+		/* client already disconnected. */
+		login_proxy_free(client->proxy);
+		client->proxy = NULL;
+
+		client_unref(client);
+		return -1;
+	}
+
 	if (!client->proxy_login_sent) {
 		/* this is a banner */
 		if (strncmp(line, "* OK ", 5) != 0) {