changeset 21512:be3236bce027

doveadm mailbox cryptokey generate: Fix error handling Don't crash if mail_user creation failed.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Fri, 10 Feb 2017 12:40:41 +0200
parents 59fca1e76009
children 3b1b633a40cc
files src/plugins/mail-crypt/doveadm-mail-crypt.c
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/plugins/mail-crypt/doveadm-mail-crypt.c	Fri Feb 10 12:33:01 2017 +0200
+++ b/src/plugins/mail-crypt/doveadm-mail-crypt.c	Fri Feb 10 12:40:41 2017 +0200
@@ -109,12 +109,14 @@
 			      &dest_service_user, &error);
 
 	/* to make sure we get correct logging context */
-	mail_storage_service_io_deactivate_user(dest_service_user);
+	if (ret > 0)
+		mail_storage_service_io_deactivate_user(dest_service_user);
 	mail_storage_service_io_activate_user(user->_service_user);
 
 	if (ret <= 0) {
 		i_error("Cannot initialize destination user %s: %s",
 			target_uid, error);
+		return ret;
 	} else {
 		i_assert(dest_user != NULL);
 		dest_username = dest_user->username;
@@ -150,8 +152,7 @@
 	mail_storage_service_io_activate_user(dest_service_user);
 
 	mail_user_unref(&dest_user);
-	if (dest_service_user != NULL)
-		mail_storage_service_user_free(&dest_service_user);
+	mail_storage_service_user_free(&dest_service_user);
 
 	if ((cur_ioloop_ctx = io_loop_get_current_context(current_ioloop)) != NULL)
 		io_loop_context_deactivate(cur_ioloop_ctx);