]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Stop immediately if doveadm_mail_cmd_vfuncs.init() fails
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Sat, 9 Dec 2023 21:05:51 +0000 (23:05 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Fri, 17 Jan 2025 08:39:57 +0000 (10:39 +0200)
src/doveadm/doveadm-mail.c

index 0549db378190dda8d4d37fe9907cae2b3419d8bc..3ddb353db1f11763db27c0fdf31024149a632847 100644 (file)
@@ -531,6 +531,11 @@ int doveadm_mail_single_user(struct doveadm_mail_cmd_context *ctx,
        T_BEGIN {
                ctx->v.init(ctx);
        } T_END;
+       if (ctx->exit_code != 0) {
+               /* return success, so caller won't overwrite exit_code */
+               return 1;
+       }
+
        doveadm_print_header_disallow(TRUE);
        if (hook_doveadm_mail_init != NULL)
                hook_doveadm_mail_init(ctx);
@@ -556,6 +561,8 @@ doveadm_mail_all_users(struct doveadm_mail_cmd_context *ctx,
        T_BEGIN {
                ctx->v.init(ctx);
        } T_END;
+       if (ctx->exit_code != 0)
+               return;
        doveadm_print_header_disallow(TRUE);
 
        if (wildcard_user != NULL) {