diff --git a/ActiveSync/SOGoMailObject+ActiveSync.m b/ActiveSync/SOGoMailObject+ActiveSync.m index 36d8ec987..d16f97ad9 100644 --- a/ActiveSync/SOGoMailObject+ActiveSync.m +++ b/ActiveSync/SOGoMailObject+ActiveSync.m @@ -729,6 +729,17 @@ struct GlobalObjectId { break; } + // If we didn't find a "space" character search again for &# to avoid + // truncating the content in the middle of a XML entity + if (i < 0) + { + for (i = len-2 ; i >= 0; i--) + { + if ([theContent characterAtIndex: i] == '&' && [theContent characterAtIndex: i+1] == '#') + break; + } + } + return [theContent substringToIndex: i]; } diff --git a/NEWS b/NEWS index f4270fd1d..b1e961469 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,7 @@ Bug fixes - [core] make sure we handle events occurring after RRULE's UNTIL date - [core] avoid changing RRULE's UNTIL date for no reason - [eas] improve FolderSync operation (#4672) + - [eas] avoid incorrect truncation leading to exception (#4806) 4.0.8 (2019-07-19) ------------------