From be1be47613d4c9357df9c172eb45c532650035a5 Mon Sep 17 00:00:00 2001 From: Matthew Olsson Date: Wed, 26 May 2021 22:51:10 -0700 Subject: [PATCH] LibPDF: Fix two parser bugs - A newline was assumed to follow the "stream" keyword, when it can also be a windows-style line break - Fix not consuming the "endobj" at the end of every indirect object --- Userland/Libraries/LibPDF/Parser.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibPDF/Parser.cpp b/Userland/Libraries/LibPDF/Parser.cpp index 0f919618c2..858ab7b195 100644 --- a/Userland/Libraries/LibPDF/Parser.cpp +++ b/Userland/Libraries/LibPDF/Parser.cpp @@ -316,7 +316,7 @@ Value Parser::parse_value() auto dict = parse_dict(); if (!dict) return {}; - if (m_reader.matches("stream\n")) + if (m_reader.matches("stream")) return parse_stream(dict.release_nonnull()); return dict; } @@ -371,6 +371,9 @@ RefPtr Parser::parse_indirect_value(int index, int generation) if (!m_reader.matches("endobj")) return {}; + consume(6); + consume_whitespace(); + return make_object(index, generation, value); }