dovecot-2.0: lib-storage: Fixed crashing on "NOT <nonexistent se...

dovecot at dovecot.org dovecot at dovecot.org
Thu Jul 28 17:46:47 EEST 2011


details:   http://hg.dovecot.org/dovecot-2.0/rev/0e64f0217feb
changeset: 12871:0e64f0217feb
user:      Timo Sirainen <tss at iki.fi>
date:      Thu Jul 28 17:46:37 2011 +0300
description:
lib-storage: Fixed crashing on "NOT <nonexistent sequence>" search.

diffstat:

 src/lib-storage/index/index-search.c |  6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diffs (23 lines):

diff -r a77d53d40ea3 -r 0e64f0217feb src/lib-storage/index/index-search.c
--- a/src/lib-storage/index/index-search.c	Thu Jul 28 12:08:10 2011 +0300
+++ b/src/lib-storage/index/index-search.c	Thu Jul 28 17:46:37 2011 +0300
@@ -745,7 +745,7 @@
 	else {
 		/* if all messages are in the range, it can't match */
 		range = array_get_modifiable(seqset, &count);
-		return range[0].seq1 != 1 ||
+		return count == 0 || range[0].seq1 != 1 ||
 			range[count-1].seq2 != messages_count;
 	}
 }
@@ -768,6 +768,10 @@
 	if (!not) {
 		min_seq = range[0].seq1;
 		max_seq = range[count-1].seq2;
+	} else if (count == 0) {
+		/* matches all messages */
+		min_seq = 1;
+		max_seq = messages_count;
 	} else {
 		min_seq = range[0].seq1 > 1 ? 1 : range[0].seq2 + 1;
 		max_seq = range[count-1].seq2 < messages_count ?


More information about the dovecot-cvs mailing list