From: Timo Sirainen Date: Thu, 2 Apr 2009 18:25:27 +0000 (-0400) Subject: imap/pop3-login: Don't crash when shutting down and destroying clients. X-Git-Tag: 1.2.rc1~17 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cb80aa11a7bea079cc4a0ee7700ad6358e6edd71;p=thirdparty%2Fdovecot%2Fcore.git imap/pop3-login: Don't crash when shutting down and destroying clients. --HG-- branch : HEAD --- diff --git a/src/imap-login/client.c b/src/imap-login/client.c index 3e8a1e8adc..6e96f98271 100644 --- a/src/imap-login/client.c +++ b/src/imap-login/client.c @@ -687,11 +687,12 @@ void clients_notify_auth_connected(void) void clients_destroy_all(void) { - struct client *client; + struct client *client, *next; - for (client = clients; client != NULL; client = client->next) { + for (client = clients; client != NULL; client = next) { struct imap_client *imap_client = (struct imap_client *)client; + next = client->next; client_destroy(imap_client, "Disconnected: Shutting down"); } } diff --git a/src/pop3-login/client.c b/src/pop3-login/client.c index 076e9bc465..7c049586b1 100644 --- a/src/pop3-login/client.c +++ b/src/pop3-login/client.c @@ -479,11 +479,12 @@ void clients_notify_auth_connected(void) void clients_destroy_all(void) { - struct client *client; + struct client *client, *next; - for (client = clients; client != NULL; client = client->next) { + for (client = clients; client != NULL; client = next) { struct pop3_client *pop3_client = (struct pop3_client *)client; + next = client->next; client_destroy(pop3_client, "Disconnected: Shutting down"); } }