From: Timo Sirainen Date: Sun, 9 May 2004 23:20:04 +0000 (+0300) Subject: don't crash when requesting messages from empty mailbox X-Git-Tag: 1.1.alpha1~4121 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=62950eeff28f00989a17b20eeade3af7e200c6bc;p=thirdparty%2Fdovecot%2Fcore.git don't crash when requesting messages from empty mailbox --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-index-view.c b/src/lib-index/mail-index-view.c index 6884855db9..4142392754 100644 --- a/src/lib-index/mail-index-view.c +++ b/src/lib-index/mail-index-view.c @@ -209,8 +209,7 @@ static uint32_t mail_index_bsearch_uid(struct mail_index_view *view, rec = view->map->records; - idx = 0; - left_idx = *left_idx_p; + idx = left_idx = *left_idx_p; right_idx = view->map->records_count; while (left_idx < right_idx) { @@ -224,6 +223,11 @@ static uint32_t mail_index_bsearch_uid(struct mail_index_view *view, break; } + if (idx == view->map->records_count) { + /* no messages available */ + return 0; + } + *left_idx_p = left_idx; if (rec[idx].uid != uid) { if (nearest_side > 0) { diff --git a/src/lib-storage/index/index-search.c b/src/lib-storage/index/index-search.c index 9c6af48632..3535e95d3c 100644 --- a/src/lib-storage/index/index-search.c +++ b/src/lib-storage/index/index-search.c @@ -691,6 +691,12 @@ static int search_get_seqset(struct index_search_context *ctx, return -1; } + if (hdr->messages_count == 0) { + ctx->seq1 = 1; + ctx->seq2 = 0; + return 0; + } + if (search_parse_msgset_args(ctx->ibox, hdr, args, &ctx->seq1, &ctx->seq2) < 0) return -1;