Mercurial > dovecot > original-hg > dovecot-1.2
changeset 6157:e458f915009e HEAD
Last messageset changes broke FETCH *.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 02 Aug 2007 15:35:27 +0300 |
parents | e18086698ebf |
children | 6e9b6468398f |
files | src/imap/imap-search.c |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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 @@ 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";