diff options
author | Matthew Olsson <matthewcolsson@gmail.com> | 2021-05-26 22:51:10 -0700 |
---|---|---|
committer | Ali Mohammad Pur <Ali.mpfard@gmail.com> | 2021-06-12 22:45:01 +0430 |
commit | be1be47613d4c9357df9c172eb45c532650035a5 (patch) | |
tree | ab39d261b4ab8c0904ebbf6f6511582abe2e6741 /Userland/Libraries/LibPDF | |
parent | ffda24373ab90ddf4b371dbddfee5019dff095ec (diff) | |
download | serenity-be1be47613d4c9357df9c172eb45c532650035a5.zip |
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
Diffstat (limited to 'Userland/Libraries/LibPDF')
-rw-r--r-- | Userland/Libraries/LibPDF/Parser.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
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<IndirectValue> Parser::parse_indirect_value(int index, int generation) if (!m_reader.matches("endobj")) return {}; + consume(6); + consume_whitespace(); + return make_object<IndirectValue>(index, generation, value); } |