[dovecot-cvs] dovecot/src/lib-storage/index index-search.c, 1.103,
1.104
cras at dovecot.org
cras at dovecot.org
Mon Jul 4 00:09:42 EEST 2005
Update of /var/lib/cvs/dovecot/src/lib-storage/index
In directory talvi:/tmp/cvs-serv9497/lib-storage/index
Modified Files:
index-search.c
Log Message:
Moved sequence set range checks to imap-specific code, so that SEARCH can
accept sequence sets with sequence being larger than number of messages in
mailbox.
Index: index-search.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/index-search.c,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -d -r1.103 -r1.104
--- index-search.c 23 Apr 2005 16:51:21 -0000 1.103
+++ index-search.c 3 Jul 2005 21:09:40 -0000 1.104
@@ -536,14 +536,21 @@
uint32_t *seq1_r, uint32_t *seq2_r)
{
for (; set != NULL; set = set->next) {
- if (set->seq1 == (uint32_t)-1)
+ if (set->seq1 > hdr->messages_count) {
+ if (set->seq1 != (uint32_t)-1 &&
+ set->seq2 != (uint32_t)-1) {
+ /* completely outside our range */
+ set->seq1 = set->seq2 = 0;
+ return 0;
+ }
+ /* either seq1 or seq2 is '*', so the last message is
+ in range. */
set->seq1 = hdr->messages_count;
- if (set->seq2 == (uint32_t)-1)
+ }
+ if (set->seq2 > hdr->messages_count)
set->seq2 = hdr->messages_count;
- if (set->seq1 == 0 || set->seq2 == 0 ||
- set->seq1 > hdr->messages_count ||
- set->seq2 > hdr->messages_count) {
+ if (set->seq1 == 0 || set->seq2 == 0) {
mail_storage_set_syntax_error(ibox->box.storage,
"Invalid messageset");
return -1;
More information about the dovecot-cvs
mailing list