diff --git a/Userland/Libraries/LibPDF/Fonts/CFF.cpp b/Userland/Libraries/LibPDF/Fonts/CFF.cpp index 46c86f4268..7b6898f506 100644 --- a/Userland/Libraries/LibPDF/Fonts/CFF.cpp +++ b/Userland/Libraries/LibPDF/Fonts/CFF.cpp @@ -753,7 +753,7 @@ PDFErrorOr> CFF::parse_charset(Reader&& reader, size // CFF spec, "Table 19 Range1 Format (Charset)" auto first_sid = TRY(reader.try_read>()); int left = TRY(reader.try_read()); - for (SID sid = first_sid; left >= 0; left--, sid++) + for (SID sid = first_sid; left >= 0 && names.size() < glyph_count - 1; left--, sid++) TRY(names.try_append(resolve_sid(sid, strings))); } } else if (format == 2) { @@ -764,7 +764,7 @@ PDFErrorOr> CFF::parse_charset(Reader&& reader, size // CFF spec, "Table 21 Range2 Format" auto first_sid = TRY(reader.try_read>()); int left = TRY(reader.try_read()); - for (SID sid = first_sid; left >= 0; left--, sid++) + for (SID sid = first_sid; left >= 0 && names.size() < glyph_count - 1; left--, sid++) TRY(names.try_append(resolve_sid(sid, strings))); } } else {