summaryrefslogtreecommitdiffstats
path: root/libass/ass_fontselect.c
diff options
context:
space:
mode:
authorOneric <oneric@oneric.stub>2021-08-15 01:36:22 +0200
committerOneric <oneric@oneric.stub>2021-08-15 01:36:22 +0200
commita8456e673c473a081febb4c2da5ba90457574c6d (patch)
treea041aed7840a0125c10b74e2c542accf1c6e41e4 /libass/ass_fontselect.c
parent1daecf4e5c056da08fbd365cd8e7603b5af9b607 (diff)
downloadlibass-a8456e673c473a081febb4c2da5ba90457574c6d.tar.bz2
libass-a8456e673c473a081febb4c2da5ba90457574c6d.tar.xz
Fix load_fonts_from_dir truncating paths
Another fix for commit 729e48a1eb90bd56b4bb670ee9c8c3821ef12c45: Paths larger than SIZE_MAX - 256 were significantly truncated and subsequently tried to be opened in truncated form. This was likely harmless in practice, but now all theoretically possible paths should be processed correctly.
Diffstat (limited to 'libass/ass_fontselect.c')
-rw-r--r--libass/ass_fontselect.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libass/ass_fontselect.c b/libass/ass_fontselect.c
index c99fb62..3600dce 100644
--- a/libass/ass_fontselect.c
+++ b/libass/ass_fontselect.c
@@ -184,7 +184,7 @@ static void load_fonts_from_dir(ASS_Library *library, const char *dir)
if (namelen < 2 || namelen - 2 < dirlen)
continue;
if (namelen > namemax) {
- size_t newlen = FFMAX(2048, namelen + 256);
+ size_t newlen = FFMAX(2048, namelen + FFMIN(256, SIZE_MAX - namelen));
if (ASS_REALLOC_ARRAY(namebuf, newlen))
namemax = newlen;
else