dovecot-2.2: last-login: Fixed timeout leak at user deinit.

dovecot at dovecot.org dovecot at dovecot.org
Wed Aug 20 10:35:40 UTC 2014


details:   http://hg.dovecot.org/dovecot-2.2/rev/f08d6cf8bdd4
changeset: 17731:f08d6cf8bdd4
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Aug 20 12:35:27 2014 +0200
description:
last-login: Fixed timeout leak at user deinit.

diffstat:

 src/plugins/last-login/last-login-plugin.c |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (20 lines):

diff -r 9ee7381056d5 -r f08d6cf8bdd4 src/plugins/last-login/last-login-plugin.c
--- a/src/plugins/last-login/last-login-plugin.c	Wed Aug 20 12:07:19 2014 +0200
+++ b/src/plugins/last-login/last-login-plugin.c	Wed Aug 20 12:35:27 2014 +0200
@@ -27,12 +27,14 @@
 {
 	struct last_login_user *luser = LAST_LOGIN_USER_CONTEXT(user);
 
-	if (luser->to != NULL)
-		timeout_remove(&luser->to);
 	if (luser->dict != NULL) {
 		(void)dict_wait(luser->dict);
 		dict_deinit(&luser->dict);
 	}
+	/* remove timeout after dict_wait(), which may trigger
+	   last_login_dict_commit() */
+	if (luser->to != NULL)
+		timeout_remove(&luser->to);
 }
 
 static void last_login_user_deinit(struct mail_user *user)


More information about the dovecot-cvs mailing list