changeset 11588:9a852084bbeb HEAD

doveadm: Fixed assert-crash when listing mailbox foo/*
author Timo Sirainen <tss@iki.fi>
date Fri, 18 Jun 2010 21:41:13 +0100
parents 47c1329e4e65
children 573cb66e9180
files src/doveadm/doveadm-mail-fetch.c
diffstat 1 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/doveadm/doveadm-mail-fetch.c	Fri Jun 18 20:07:20 2010 +0100
+++ b/src/doveadm/doveadm-mail-fetch.c	Fri Jun 18 21:41:13 2010 +0100
@@ -13,6 +13,7 @@
 #include "mail-user.h"
 #include "mail-storage.h"
 #include "mail-search.h"
+#include "mail-namespace.h"
 #include "doveadm-mail.h"
 #include "doveadm-mail-list-iter.h"
 #include "doveadm-mail-iter.h"
@@ -397,6 +398,13 @@
 	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)