From fd7887566297623cde57131257720bb22b8117a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Offenh=C3=A4user?= Date: Tue, 21 Mar 2023 20:02:11 +0100 Subject: LibPDF: Fix navigate_to_before_eof_marker() for PDFs not ending in EOL The way this was factored before, we would miss the %%EOF marker if it didn't have a valid end-of-line sequence after it. --- Userland/Libraries/LibPDF/DocumentParser.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'Userland/Libraries/LibPDF') diff --git a/Userland/Libraries/LibPDF/DocumentParser.cpp b/Userland/Libraries/LibPDF/DocumentParser.cpp index e2c1538e6e..7d7f3d1f9b 100644 --- a/Userland/Libraries/LibPDF/DocumentParser.cpp +++ b/Userland/Libraries/LibPDF/DocumentParser.cpp @@ -692,19 +692,13 @@ bool DocumentParser::navigate_to_before_eof_marker() m_reader.set_reading_backwards(); while (!m_reader.done()) { - m_reader.move_until([&](auto) { return m_reader.matches_eol(); }); - if (m_reader.done()) - return false; - m_reader.consume_eol(); - if (!m_reader.matches("%%EOF")) - continue; + if (m_reader.matches("%%EOF")) { + m_reader.move_by(5); + return true; + } - m_reader.move_by(5); - if (!m_reader.matches_eol()) - continue; - m_reader.consume_eol(); - return true; + m_reader.move_until([&](auto) { return m_reader.matches_eol(); }); } return false; -- cgit v1.2.3