1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 05:07:35 +00:00

LibPDF: Don't use unsanitized values in error messages

Previously, constructing error messages with unsanitized input could
fail because error message strings must be UTF-8.
This commit is contained in:
Tim Ledbetter 2023-10-25 23:45:56 +01:00 committed by Andreas Kling
parent f8bf9c6506
commit b4296e1c9b
9 changed files with 41 additions and 15 deletions

View file

@ -81,15 +81,19 @@ PDFErrorOr<Version> DocumentParser::parse_header()
m_reader.move_by(5);
char major_ver = m_reader.read();
if (major_ver != '1' && major_ver != '2')
return error(DeprecatedString::formatted("Unknown major version \"{}\"", major_ver));
if (major_ver != '1' && major_ver != '2') {
dbgln_if(PDF_DEBUG, "Unknown major version \"{}\"", major_ver);
return error("Unknown major version");
}
if (m_reader.read() != '.')
return error("Malformed PDF version");
char minor_ver = m_reader.read();
if (minor_ver < '0' || minor_ver > '7')
return error(DeprecatedString::formatted("Unknown minor version \"{}\"", minor_ver));
if (minor_ver < '0' || minor_ver > '7') {
dbgln_if(PDF_DEBUG, "Unknown minor version \"{}\"", minor_ver);
return error("Unknown minor version");
}
m_reader.consume_eol();
m_reader.consume_whitespace();