Mercurial > dovecot > core-2.2
changeset 11589:573cb66e9180 HEAD
doveadm: Fixed assert-crash with mailbox foo/* in all commands, not just fetch.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sat, 19 Jun 2010 20:57:42 +0100 |
parents | 9a852084bbeb |
children | 542d859f0223 |
files | src/doveadm/doveadm-mail-fetch.c src/doveadm/doveadm-mail-list-iter.c |
diffstat | 2 files changed, 7 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/doveadm-mail-fetch.c Fri Jun 18 21:41:13 2010 +0100 +++ b/src/doveadm/doveadm-mail-fetch.c Sat Jun 19 20:57:42 2010 +0100 @@ -398,13 +398,6 @@ 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)
--- a/src/doveadm/doveadm-mail-list-iter.c Fri Jun 18 21:41:13 2010 +0100 +++ b/src/doveadm/doveadm-mail-list-iter.c Sat Jun 19 20:57:42 2010 +0100 @@ -95,8 +95,15 @@ 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;