[dovecot-cvs]
dovecot/src/lib-storage/index index-messageset.c,1.17,1.18
cras at procontrol.fi
cras at procontrol.fi
Mon Jun 23 21:10:04 EEST 2003
Update of /home/cvs/dovecot/src/lib-storage/index
In directory danu:/tmp/cvs-serv415/src/lib-storage/index
Modified Files:
index-messageset.c
Log Message:
Accessing messages in empty mailbox caused some crashes.
Index: index-messageset.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-messageset.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- index-messageset.c 23 Apr 2003 14:11:17 -0000 1.17
+++ index-messageset.c 23 Jun 2003 17:10:01 -0000 1.18
@@ -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) {
More information about the dovecot-cvs
mailing list