# Fix two separate bugs in cmd_reserve Index: imap/sync_server.c =================================================================== RCS file: /cvs/src/cyrus/imap/sync_server.c,v retrieving revision 1.11 diff -u -d -r1.11 sync_server.c --- imap/sync_server.c 24 Sep 2007 12:48:32 -0000 1.11 +++ imap/sync_server.c 25 Sep 2007 09:28:09 -0000 @@ -1465,14 +1465,16 @@ goto cleanup; } - for (i = 0, msgno = 1 ; msgno <= m.exists; msgno++) { + for (i = 0, msgno = 1 ; (msgno <= m.exists) && (i < count); msgno++) { mailbox_read_index_record(&m, msgno, &record); if (!message_guid_compare(&record.guid, &ids[i])) continue; - if (sync_message_find(message_list, &record.guid)) + if (sync_message_find(message_list, &record.guid)) { + i++; continue; /* Duplicate GUID on RESERVE list */ + } /* Attempt to reserve this message */ snprintf(mailbox_msg_path, sizeof(mailbox_msg_path),