diff --git a/TODO b/TODO index 39a74de..53f00a0 100644 --- a/TODO +++ b/TODO @@ -5,11 +5,6 @@ Next mention in latest release notes including that it was inadvertently left out of the release notes for 3.0.0. - * EOF while reading token causes a tokenizer error even when a valid - token is ready. This can happen in an object stream if there is no - newline or whitespace character at the end and the last token in - the object stream is not an array or dictionary. - General ======= diff --git a/qpdf/qtest/qpdf.test b/qpdf/qtest/qpdf.test index da31849..fda92b3 100644 --- a/qpdf/qtest/qpdf.test +++ b/qpdf/qtest/qpdf.test @@ -149,7 +149,7 @@ $td->runtest("remove page we don't have", $td->NORMALIZE_NEWLINES); # ---------- $td->notify("--- Miscellaneous Tests ---"); -$n_tests += 45; +$n_tests += 47; $td->runtest("qpdf version", {$td->COMMAND => "qpdf --version"}, @@ -374,6 +374,14 @@ $td->runtest("parse objects from string", {$td->COMMAND => "test_driver 31 minimal.pdf"}, # file not used {$td->FILE => "parse-object.out", $td->EXIT_STATUS => 0}, $td->NORMALIZE_NEWLINES); +$td->runtest("EOF terminating literal tokens", + {$td->COMMAND => "qpdf --check eof-terminates-literal.pdf"}, + {$td->FILE => "eof-terminates-literal.out", $td->EXIT_STATUS => 0}, + $td->NORMALIZE_NEWLINES); +$td->runtest("EOF reading token", + {$td->COMMAND => "qpdf --check eof-reading-token.pdf"}, + {$td->FILE => "eof-reading-token.out", $td->EXIT_STATUS => 0}, + $td->NORMALIZE_NEWLINES); show_ntests(); # ---------- diff --git a/qpdf/qtest/qpdf/eof-reading-token.out b/qpdf/qtest/qpdf/eof-reading-token.out new file mode 100644 index 0000000..58e5b09 --- /dev/null +++ b/qpdf/qtest/qpdf/eof-reading-token.out @@ -0,0 +1,5 @@ +checking eof-reading-token.pdf +PDF Version: 1.3 +File is not encrypted +File is not linearized +object stream 12 (file position 5): EOF while reading token diff --git a/qpdf/qtest/qpdf/eof-reading-token.pdf b/qpdf/qtest/qpdf/eof-reading-token.pdf new file mode 100644 index 0000000..080bb50 --- /dev/null +++ b/qpdf/qtest/qpdf/eof-reading-token.pdf diff --git a/qpdf/qtest/qpdf/eof-terminates-literal.out b/qpdf/qtest/qpdf/eof-terminates-literal.out new file mode 100644 index 0000000..2feaefd --- /dev/null +++ b/qpdf/qtest/qpdf/eof-terminates-literal.out @@ -0,0 +1,6 @@ +checking eof-terminates-literal.pdf +PDF Version: 1.3 +File is not encrypted +File is not linearized +No syntax or stream encoding errors found; the file may still contain +errors that qpdf cannot detect diff --git a/qpdf/qtest/qpdf/eof-terminates-literal.pdf b/qpdf/qtest/qpdf/eof-terminates-literal.pdf new file mode 100644 index 0000000..e695ec5 --- /dev/null +++ b/qpdf/qtest/qpdf/eof-terminates-literal.pdf