diff --git a/ChangeLog b/ChangeLog index 0cc650160..89844144b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2011-07-27 Wolfgang Sourdeau + * OpenChange/NSString+MAPIStore.m (-asUnicodeInMemCtx): return an + empty string when length == 0, otherwise the resulting pointer + will be NULL. + * OpenChange/plreader.m: new test tool to dump property lists independently from their serialization format. diff --git a/OpenChange/NSString+MAPIStore.m b/OpenChange/NSString+MAPIStore.m index 81cdc1c7a..b0a7e0f5a 100644 --- a/OpenChange/NSString+MAPIStore.m +++ b/OpenChange/NSString+MAPIStore.m @@ -33,8 +33,13 @@ char *unicode; NSData *encoded; - encoded = [self dataUsingEncoding: NSUTF8StringEncoding]; - unicode = talloc_strndup (memCtx, [encoded bytes], [encoded length]); + if ([self length] > 0) + { + encoded = [self dataUsingEncoding: NSUTF8StringEncoding]; + unicode = talloc_strndup (memCtx, [encoded bytes], [encoded length]); + } + else + unicode = talloc_memdup (memCtx, "", 1); return unicode; }