summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libass/ass_coretext.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libass/ass_coretext.c b/libass/ass_coretext.c
index 59a8a2d..7371f7c 100644
--- a/libass/ass_coretext.c
+++ b/libass/ass_coretext.c
@@ -96,7 +96,13 @@ static bool check_glyph(void *priv, uint32_t code)
static char *get_font_file(CTFontDescriptorRef fontd)
{
CFURLRef url = CTFontDescriptorCopyAttribute(fontd, kCTFontURLAttribute);
+ if (!url)
+ return NULL;
CFStringRef path = CFURLCopyFileSystemPath(url, kCFURLPOSIXPathStyle);
+ if (!path) {
+ SAFE_CFRelease(url);
+ return NULL;
+ }
char *buffer = cfstr2buf(path);
SAFE_CFRelease(path);
SAFE_CFRelease(url);
@@ -133,7 +139,7 @@ static void process_descriptors(ASS_Library *lib, ASS_FontProvider *provider,
int index = -1;
char *path = get_font_file(fontd);
- if (strcmp("", path) == 0) {
+ if (!path || strcmp("", path) == 0) {
// skip the font if the URL field in the font descriptor is empty
free(path);
continue;