]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-storage: mail_storage_service_next*() - On failure don't leave user's io context...
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Wed, 21 Apr 2021 14:11:54 +0000 (17:11 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 29 Sep 2021 10:09:58 +0000 (10:09 +0000)
src/lib-storage/mail-storage-service.c

index 3798fcd0d05ec2c3547b030a978f882d0b4cd174..1cc014fe569bbcb2341aaaf9f7a6a196084e9384 100644 (file)
@@ -1517,6 +1517,7 @@ mail_storage_service_next_real(struct mail_storage_service_ctx *ctx,
                                            FALSE, &error) < 0) {
                        *error_r = t_strdup_printf(
                                "Couldn't drop privileges: %s", error);
+                       mail_storage_service_io_deactivate_user(user);
                        return -1;
                }
                if (!temp_priv_drop ||
@@ -1530,8 +1531,10 @@ mail_storage_service_next_real(struct mail_storage_service_ctx *ctx,
 
        if (mail_storage_service_init_post(ctx, user, &priv,
                                           session_id_suffix,
-                                          mail_user_r, error_r) < 0)
+                                          mail_user_r, error_r) < 0) {
+               mail_storage_service_io_deactivate_user(user);
                return -2;
+       }
        return 0;
 }