diff options
author | Oneric <oneric@oneric.stub> | 2021-08-15 01:36:22 +0200 |
---|---|---|
committer | Oneric <oneric@oneric.stub> | 2021-08-15 01:36:22 +0200 |
commit | a8456e673c473a081febb4c2da5ba90457574c6d (patch) | |
tree | a041aed7840a0125c10b74e2c542accf1c6e41e4 /libass/ass_fontselect.c | |
parent | 1daecf4e5c056da08fbd365cd8e7603b5af9b607 (diff) | |
download | libass-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.c | 2 |
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 |