summaryrefslogtreecommitdiffstats
path: root/libass/ass_fontselect.c
diff options
context:
space:
mode:
authorOleg Oshmyan <chortos@inbox.lv>2021-09-25 16:45:32 +0300
committerOleg Oshmyan <chortos@inbox.lv>2021-09-25 16:49:16 +0300
commit4c3ace7cdcc740652331dbd57cc500b4ad50be81 (patch)
tree045acf7f267fdd9fbebe49bf48bfdcceb02e5982 /libass/ass_fontselect.c
parent2b30c69ca3a0c0767dac4f3486c9182d2a79cb38 (diff)
downloadlibass-4c3ace7cdcc740652331dbd57cc500b4ad50be81.tar.bz2
libass-4c3ace7cdcc740652331dbd57cc500b4ad50be81.tar.xz
fontselect: don't leak substitution fullname array if it's empty
Discovered by OSS-Fuzz. This is a longstanding bug (since 0.13.0 released in 2015, when the new fontselect was first introduced), but it should be rare: it only manifests when Fontconfig has no substitutions configured (which is unusual) or when font name strdups fail. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39257.
Diffstat (limited to 'libass/ass_fontselect.c')
-rw-r--r--libass/ass_fontselect.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libass/ass_fontselect.c b/libass/ass_fontselect.c
index b47c4bc..02b8d9c 100644
--- a/libass/ass_fontselect.c
+++ b/libass/ass_fontselect.c
@@ -856,6 +856,7 @@ static char *select_font(ASS_FontSelector *priv,
}
if (!meta.n_fullname) {
+ free(meta.fullnames);
meta = default_meta;
}