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