From: Timo Sirainen Date: Sat, 19 Jun 2010 19:57:42 +0000 (+0100) Subject: doveadm: Fixed assert-crash with mailbox foo/* in all commands, not just fetch. X-Git-Tag: 2.0.rc1~129 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0c6f3ff9637e606bc1b70b268f8643da576d6388;p=thirdparty%2Fdovecot%2Fcore.git doveadm: Fixed assert-crash with mailbox foo/* in all commands, not just fetch. --HG-- branch : HEAD --- diff --git a/src/doveadm/doveadm-mail-fetch.c b/src/doveadm/doveadm-mail-fetch.c index 0e24de003b..d1660b3115 100644 --- a/src/doveadm/doveadm-mail-fetch.c +++ b/src/doveadm/doveadm-mail-fetch.c @@ -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) diff --git a/src/doveadm/doveadm-mail-list-iter.c b/src/doveadm/doveadm-mail-list-iter.c index 3ade240b5d..76e6ccce36 100644 --- a/src/doveadm/doveadm-mail-list-iter.c +++ b/src/doveadm/doveadm-mail-list-iter.c @@ -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;