changeset 19958:17c41e72d2d9

director: Make sure freeing a user doesn't leak a timeout.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 24 Mar 2016 10:07:15 +0900
parents 87c5013dc8e3
children 9d1ca7caf268
files src/director/user-directory.c
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/director/user-directory.c	Thu Mar 24 10:01:17 2016 +0900
+++ b/src/director/user-directory.c	Thu Mar 24 10:07:15 2016 +0900
@@ -54,6 +54,11 @@
 	i_assert(user->host->user_count > 0);
 	user->host->user_count--;
 
+	if (user->to_move != NULL) {
+		/* director_user_expire is very short. user expired before
+		   moving the user finished or timed out. */
+		timeout_remove(&user->to_move);
+	}
 	user_move_iters(dir, user);
 
 	hash_table_remove(dir->hash, POINTER_CAST(user->username_hash));