Monotone-Parent: 9d47c9cef3446d2779b6278f14667829a001d33e

Monotone-Revision: 4a6e1466c3b8ab939f8fea9f2c12a5873c724821

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2011-02-12T04:30:40
Monotone-Branch: ca.inverse.sogo
maint-2.0.2
Wolfgang Sourdeau 2011-02-12 04:30:40 +00:00
parent d3f008b1c0
commit c6812d8ad0
2 changed files with 26 additions and 1 deletions

View File

@ -1,5 +1,10 @@
2011-02-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* OpenChange/MAPIStoreMailMessageTable.m
(-getChildProperty:forKey:withTag:): return
MAPI_E_NOT_ENOUGH_MEMORY for values of PR_HTML or PR_BODY_UNICODE
that are larged than 16Kib (arbitrary limit).
* OpenChange/MAPIStoreCalendarMessageTable.m
(-sortIdentifierForProperty): added support for
PidLidAppointmentEndWhole and PidLidRecurring.

View File

@ -367,6 +367,15 @@ static EOQualifier *nonDeletedQualifier = nil;
stringValue = [[NSString alloc] initWithData: content
encoding: NSISOLatin1StringEncoding];
*data = [stringValue asUnicodeInMemCtx: memCtx];
if (strlen (*data) > 16384)
{
[context registerValue: stringValue
asProperty: propTag
forURL: [NSString stringWithFormat: @"%@%@", folderURL, childKey]];
*data = NULL;
rc = MAPI_E_NOT_ENOUGH_MEMORY;
[self logWithFormat: @"PR_BODY data too wide"];
}
}
else
rc = MAPI_E_NOT_FOUND;
@ -409,7 +418,17 @@ static EOQualifier *nonDeletedQualifier = nil;
@"fetch"];
key = [[keys objectAtIndex: 0] objectForKey: @"key"];
content = [[result objectForKey: key] objectForKey: @"data"];
*data = [content asBinaryInMemCtx: memCtx];
if ([content length] > 16384)
{
[context registerValue: content
asProperty: propTag
forURL: [NSString stringWithFormat: @"%@%@", folderURL, childKey]];
*data = NULL;
rc = MAPI_E_NOT_ENOUGH_MEMORY;
[self logWithFormat: @"PR_HTML data too wide"];
}
else
*data = [content asBinaryInMemCtx: memCtx];
}
else
{
@ -421,6 +440,7 @@ static EOQualifier *nonDeletedQualifier = nil;
/* We don't handle any RTF content. */
case PR_RTF_COMPRESSED:
*data = NULL;
rc = MAPI_E_NOT_FOUND;
break;
case PR_RTF_IN_SYNC: