mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-07-09 02:15:08 +00:00
oc-mail: Check the number of uids fetched on synchroniseCache
Equals to the number of uids requested. There are corner-cases when this is not happening, we don't know yet why this is happening but IMAP server log should do the trick. This avoids to launch a NSException trying to access an element outside the array bounds.
This commit is contained in:
@@ -599,7 +599,7 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
|
||||
uint64_t lastModseqNbr;
|
||||
EOQualifier *searchQualifier;
|
||||
NSArray *uids, *changeNumbers;
|
||||
NSUInteger count, max;
|
||||
NSUInteger count, max, nFetched;
|
||||
NSArray *fetchResults;
|
||||
NSDictionary *result;
|
||||
NSData *changeKey;
|
||||
@@ -678,6 +678,13 @@ _compareFetchResultsByMODSEQ (id entry1, id entry2, void *data)
|
||||
= [fetchResults sortedArrayUsingFunction: _compareFetchResultsByMODSEQ
|
||||
context: NULL];
|
||||
|
||||
nFetched = [fetchResults count];
|
||||
if (nFetched != max) {
|
||||
[self errorWithFormat: @"Error fetching UIDs. Asked: %d Received: %d."
|
||||
@"Check the IMAP conversation for details", max, nFetched];
|
||||
return NO;
|
||||
}
|
||||
|
||||
for (count = 0; count < max; count++)
|
||||
{
|
||||
result = [fetchResults objectAtIndex: count];
|
||||
|
||||
Reference in New Issue
Block a user