On Mon, 2003-06-23 at 19:31, tom hensel wrote:
Jun 23 16:28:15 host imap(user): file mail-index.c: line 619 (mail_index_lookup_uid_range): assertion failed: (first_uid > 0 && last_uid > 0)
Whops. Fetching messages in empty mailbox caused some crashes. diff -u -r1.17 index-messageset.c --- src/lib-storage/index/index-messageset.c 23 Apr 2003 14:11:17 -0000 1.17 +++ src/lib-storage/index/index-messageset.c 23 Jun 2003 17:07:59 -0000 @@ -176,6 +176,12 @@ return FALSE; } + if (ctx->messages_count == 0 && !ctx->uidset && + num == (unsigned int)-1) { + ctx->error = "No messages in mailbox"; + return FALSE; + } + return TRUE; } @@ -187,11 +193,17 @@ struct mail_index_record *rec; rec = ctx->index->lookup(ctx->index, ctx->messages_count); - ctx->num1 = rec == NULL ? 0 : rec->uid; + if (rec == NULL) + return 1; + + ctx->num1 = rec->uid; } if (ctx->num2 == (unsigned int)-1) { ctx->num2 = ctx->index->header->next_uid-1; + + if (ctx->num2 == 0) + return 1; /* num1 might actually be larger, check */ if (ctx->num1 > ctx->num2) {