[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