[dovecot-cvs] dovecot/src/lib-storage/index index-messageset.c,1.16,1.17

cras at procontrol.fi cras at procontrol.fi
Wed Apr 23 18:11:19 EEST 2003


Update of /home/cvs/dovecot/src/lib-storage/index
In directory danu:/tmp/cvs-serv11067/lib-storage/index

Modified Files:
	index-messageset.c 
Log Message:
Fail if sequence numbers in messageset are out of range.



Index: index-messageset.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib-storage/index/index-messageset.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- index-messageset.c	8 Apr 2003 22:59:09 -0000	1.16
+++ index-messageset.c	23 Apr 2003 14:11:17 -0000	1.17
@@ -111,6 +111,8 @@
 
 static int messageset_parse_next(struct messageset_context *ctx)
 {
+	unsigned int num;
+
 	if (ctx->p == NULL) {
 		/* num1..num2 already set.  */
 		ctx->p = "";
@@ -163,6 +165,15 @@
 		unsigned int temp = ctx->num1;
 		ctx->num1 = ctx->num2;
 		ctx->num2 = temp;
+	}
+
+	num = ctx->num2 == (unsigned int)-1 ? ctx->num1 : ctx->num2;
+	if (num > ctx->messages_count && !ctx->uidset &&
+	    num != (unsigned int)-1) {
+		ctx->error = t_strdup_printf("Message sequence %u "
+					     "larger than message count (%u)",
+					     num, ctx->messages_count);
+		return FALSE;
 	}
 
 	return TRUE;




More information about the dovecot-cvs mailing list