summaryrefslogtreecommitdiffstats
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
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.
-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