]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Fixed assert-crash with mailbox foo/* in all commands, not just fetch.
authorTimo Sirainen <tss@iki.fi>
Sat, 19 Jun 2010 19:57:42 +0000 (20:57 +0100)
committerTimo Sirainen <tss@iki.fi>
Sat, 19 Jun 2010 19:57:42 +0000 (20:57 +0100)
--HG--
branch : HEAD

src/doveadm/doveadm-mail-fetch.c
src/doveadm/doveadm-mail-list-iter.c

index 0e24de003be78d21117cc5fef19260e459a3041c..d1660b3115a9d01c79ce6c6bd9d1b20c9c41f234 100644 (file)
@@ -398,13 +398,6 @@ cmd_fetch_box(struct fetch_cmd_context *ctx, const struct mailbox_info *info)
        struct mailbox_transaction_context *trans;
        struct mail *mail;
        struct mailbox_header_lookup_ctx *headers = NULL;
-       unsigned int len;
-
-       len = strlen(info->name);
-       if (len > 0 && info->name[len-1] == info->ns->sep) {
-               /* when listing "foo/%" it lists "foo/". skip it. */
-               return 0;
-       }
 
        if (doveadm_mail_iter_init(info, ctx->ctx.search_args,
                                   &trans, &iter) < 0)
index 3ade240b5d77f5a6245731e627315a01d6c7c2f6..76e6ccce365675f63ea4c0d06c428fbe9fdf5c0f 100644 (file)
@@ -95,8 +95,15 @@ const struct mailbox_info *
 doveadm_mail_list_iter_next(struct doveadm_mail_list_iter *iter)
 {
        const struct mailbox_info *info;
+       unsigned int len;
 
        while ((info = mailbox_list_iter_next(iter->iter)) != NULL) {
+               len = strlen(info->name);
+               if (len > 0 && info->name[len-1] == info->ns->sep) {
+                       /* when listing "foo/%" it lists "foo/". skip it. */
+                       continue;
+               }
+
                if (mail_search_args_match_mailbox(iter->search_args,
                                                   info->name, info->ns->sep))
                        break;