summaryrefslogtreecommitdiffstats
path: root/libass
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-08-28 12:52:31 +0200
committerwm4 <wm4@nowhere>2015-08-28 14:06:52 +0200
commit2d8c4d74d40bc6ae8c79cda36641b9f450ef92ef (patch)
tree993e0bad294f3079597e219127efe5f58f5f0059 /libass
parent5c7e811cce10489d8762ee51eb3d390dfc33cbef (diff)
downloadlibass-2d8c4d74d40bc6ae8c79cda36641b9f450ef92ef.tar.bz2
libass-2d8c4d74d40bc6ae8c79cda36641b9f450ef92ef.tar.xz
fontselect: deal with potential ASS_FontProvider.subst_font failure
Don't assume it sets all fields. If it doesn't return any font names at all, go with the default.
Diffstat (limited to 'libass')
-rw-r--r--libass/ass_fontselect.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libass/ass_fontselect.c b/libass/ass_fontselect.c
index 384054d..2653ed7 100644
--- a/libass/ass_fontselect.c
+++ b/libass/ass_fontselect.c
@@ -474,7 +474,7 @@ static char *select_font(ASS_FontSelector *priv, ASS_Library *library,
char *family_trim = strdup_trimmed(family);
ASS_FontProvider *default_provider = priv->default_provider;
ASS_FontInfo *font_infos = priv->font_infos;
- ASS_FontProviderMetaData meta;
+ ASS_FontProviderMetaData meta = {0};
if (family_trim == NULL)
return NULL;
@@ -491,7 +491,8 @@ static char *select_font(ASS_FontSelector *priv, ASS_Library *library,
default_provider->funcs.subst_font(default_provider->priv, family_trim, &meta);
req.n_fullname = meta.n_fullname;
req.fullnames = meta.fullnames;
- } else {
+ }
+ if (!req.n_fullname) {
req.n_fullname = 1;
req.fullnames = &family_trim;
}