dovecot: Last messageset changes broke FETCH *.
dovecot at dovecot.org
dovecot at dovecot.org
Thu Aug 2 15:35:34 EEST 2007
details: http://hg.dovecot.org/dovecot/rev/e458f915009e
changeset: 6157:e458f915009e
user: Timo Sirainen <tss at iki.fi>
date: Thu Aug 02 15:35:27 2007 +0300
description:
Last messageset changes broke FETCH *.
diffstat:
1 file changed, 9 insertions(+), 2 deletions(-)
src/imap/imap-search.c | 11 +++++++++--
diffs (21 lines):
diff -r e18086698ebf -r e458f915009e src/imap/imap-search.c
--- a/src/imap/imap-search.c Thu Aug 02 14:21:05 2007 +0300
+++ b/src/imap/imap-search.c Thu Aug 02 15:35:27 2007 +0300
@@ -450,8 +450,15 @@ static int imap_search_get_msgset_arg(st
arg = p_new(cmd->pool, struct mail_search_arg, 1);
arg->type = SEARCH_SEQSET;
arg->value.seqset = imap_messageset_parse(cmd->pool, messageset);
- if (arg->value.seqset == NULL ||
- arg->value.seqset->seq1 > cmd->client->messages_count ||
+ /* when there are no messages, all messagesets are invalid.
+ if there's at least one message:
+ - * gives seq1 = seq2 = (uint32_t)-1
+ - n:* should work if n <= messages_count
+ - n:m or m should work if m <= messages_count
+ */
+ if (arg->value.seqset == NULL || cmd->client->messages_count == 0 ||
+ (arg->value.seqset->seq1 > cmd->client->messages_count &&
+ arg->value.seqset->seq1 != (uint32_t)-1) ||
(arg->value.seqset->seq2 > cmd->client->messages_count &&
arg->value.seqset->seq2 != (uint32_t)-1)) {
*error_r = "Invalid messageset";
More information about the dovecot-cvs
mailing list