]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
mailbox-alias plugin: Fixed error handling
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Sun, 5 Jun 2016 12:31:20 +0000 (15:31 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 14 Jun 2016 09:22:32 +0000 (12:22 +0300)
src/plugins/mailbox-alias/mailbox-alias-plugin.c

index 6cfe6a801f06a8a65ef52bdc42167bc6672ba841..d7ee7f9deb5be03c89a2c74b62779998b702c8a2 100644 (file)
@@ -225,7 +225,9 @@ static int mailbox_alias_delete(struct mailbox *box)
                return -1;
        }
 
-       if (mailbox_is_alias_symlink(box)) {
+       if ((ret = mailbox_is_alias_symlink(box)) < 0)
+               return -1;
+       if (ret > 0) {
                /* we're deleting an alias mailbox. we'll need to handle this
                   explicitly since box->name points to the original mailbox */
                symlink_name = alist->module_ctx.super.
@@ -245,12 +247,16 @@ static int mailbox_alias_rename(struct mailbox *src, struct mailbox *dest)
        struct mailbox_alias_mailbox *abox = MAILBOX_ALIAS_CONTEXT(src);
        int ret;
 
-       if (mailbox_is_alias_symlink(src)) {
+       if ((ret = mailbox_is_alias_symlink(src)) < 0)
+               return -1;
+       else if (ret > 0) {
                mail_storage_set_error(src->storage, MAIL_ERROR_NOTPOSSIBLE,
                                       "Can't rename alias mailboxes");
                return -1;
        }
-       if (mailbox_is_alias_symlink(dest)) {
+       if ((ret = mailbox_is_alias_symlink(dest)) < 0)
+               return -1;
+       else {
                mail_storage_set_error(src->storage, MAIL_ERROR_NOTPOSSIBLE,
                                       "Can't rename to mailbox alias");
                return -1;