summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libass/ass_coretext.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libass/ass_coretext.c b/libass/ass_coretext.c
index ad05443..bf2e301 100644
--- a/libass/ass_coretext.c
+++ b/libass/ass_coretext.c
@@ -30,13 +30,15 @@
static char *cfstr2buf(CFStringRef string)
{
- const char *buf_ptr = CFStringGetCStringPtr(string, kCFStringEncodingUTF8);
+ const int encoding = kCFStringEncodingUTF8;
+ const char *buf_ptr = CFStringGetCStringPtr(string, encoding);
if (buf_ptr) {
return strdup(buf_ptr);
} else {
- size_t buf_len = CFStringGetLength(string) + 1;
+ size_t len = CFStringGetLength(string);
+ CFIndex buf_len = CFStringGetMaximumSizeForEncoding(len, encoding);
char *buf = malloc(buf_len);
- CFStringGetCString(string, buf, buf_len, kCFStringEncodingUTF8);
+ CFStringGetCString(string, buf, buf_len, encoding);
return buf;
}
}