[dovecot-cvs]
dovecot/src/lib-storage/index/mbox mbox-sync.c, 1.148, 1.149
cras at dovecot.org
cras at dovecot.org
Sat Apr 16 22:31:23 EEST 2005
Update of /var/lib/cvs/dovecot/src/lib-storage/index/mbox
In directory talvi:/tmp/cvs-serv30004/lib-storage/index/mbox
Modified Files:
mbox-sync.c
Log Message:
Don't assert-crash with 0-byte sized "mboxes".
Index: mbox-sync.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-storage/index/mbox/mbox-sync.c,v
retrieving revision 1.148
retrieving revision 1.149
diff -u -d -r1.148 -r1.149
--- mbox-sync.c 8 Apr 2005 15:08:53 -0000 1.148
+++ mbox-sync.c 16 Apr 2005 19:31:21 -0000 1.149
@@ -1221,8 +1221,19 @@
return -1;
}
- i_assert(sync_ctx->base_uid_validity != 0);
- if (sync_ctx->base_uid_validity != sync_ctx->hdr->uid_validity) {
+ /* only reason not to have UID validity at this point is if the file
+ is entirely empty. In that case just make up a new one if needed. */
+ i_assert(sync_ctx->base_uid_validity != 0 || st->st_size == 0);
+
+ if (sync_ctx->base_uid_validity != sync_ctx->hdr->uid_validity ||
+ sync_ctx->base_uid_validity == 0) {
+ if (sync_ctx->base_uid_validity == 0) {
+ sync_ctx->base_uid_validity =
+ sync_ctx->hdr->uid_validity != 0 ?
+ sync_ctx->hdr->uid_validity :
+ (unsigned int)ioloop_time;
+ }
+
mail_index_update_header(sync_ctx->t,
offsetof(struct mail_index_header, uid_validity),
&sync_ctx->base_uid_validity,
More information about the dovecot-cvs
mailing list