From 63da7474adf5b585d5fd10729a99a2c50c20a626 Mon Sep 17 00:00:00 2001 From: Wei Li Date: Sun, 6 Dec 2015 20:24:25 -0800 Subject: Merge to XFA: fix for stream object reading Loosen a check for earlier version of PDF files. When the bytes with specified length are followed by 'endstream' keyword, even if there is no EOL marker before the keyword, it signals the end of stream. BUG=551258 TBR=jun_fang@foxitsoftware.com Review URL: https://codereview.chromium.org/1499433002 . (cherry picked from commit 0ff66089c87ab6e3adaaff0ec69728ce7a8d8299) Review URL: https://codereview.chromium.org/1504723002 . --- testing/resources/pixel/bug_551258_1.in | 60 +++++++++++++++++++++ .../pixel/bug_551258_1_expected.pdf.0.png | Bin 0 -> 5433 bytes .../pixel/bug_551258_1_expected_mac.pdf.0.png | Bin 0 -> 4365 bytes 3 files changed, 60 insertions(+) create mode 100644 testing/resources/pixel/bug_551258_1.in create mode 100644 testing/resources/pixel/bug_551258_1_expected.pdf.0.png create mode 100644 testing/resources/pixel/bug_551258_1_expected_mac.pdf.0.png (limited to 'testing') diff --git a/testing/resources/pixel/bug_551258_1.in b/testing/resources/pixel/bug_551258_1.in new file mode 100644 index 0000000000..f254f2d43d --- /dev/null +++ b/testing/resources/pixel/bug_551258_1.in @@ -0,0 +1,60 @@ +{{header}} +{{object 1 0}} << + /Type /Catalog + /Pages 2 0 R +>> +{{object 2 0}} << + /Type /Pages + /MediaBox [ 0 0 200 200 ] + /Count 1 + /Kids [ 3 0 R ] +>> +endobj +{{object 3 0}} << + /Type /Page + /Parent 2 0 R + /Resources << + /Font << + /F1 4 0 R + /F2 5 0 R + >> + >> + /Contents 6 0 R +>> +endobj +{{object 4 0}} << + /Type /Font + /Subtype /Type1 + /BaseFont /Times-Roman +>> +endobj +{{object 5 0}} << + /Type /Font + /Subtype /Type1 + /BaseFont /Helvetica +>> +endobj +% Case 1: +% Earlier version of PDF doesn't require EOL before 'endstream'. If the length +% of bytes end before 'endstream', we should take it. +{{object 6 0}} << + /Length 107 +>> +stream +BT +20 50 Td +/F1 12 Tf +(endobj is text) Tj +endstream +0 50 Td +/F2 13 Tf +(endstream is text per /Length) Tj +ETendstream +endobj +{{xref}} +trailer << + /Size 6 + /Root 1 0 R +>> +{{startxref}} +%%EOF diff --git a/testing/resources/pixel/bug_551258_1_expected.pdf.0.png b/testing/resources/pixel/bug_551258_1_expected.pdf.0.png new file mode 100644 index 0000000000..a044bb0c37 Binary files /dev/null and b/testing/resources/pixel/bug_551258_1_expected.pdf.0.png differ diff --git a/testing/resources/pixel/bug_551258_1_expected_mac.pdf.0.png b/testing/resources/pixel/bug_551258_1_expected_mac.pdf.0.png new file mode 100644 index 0000000000..e4d57103ef Binary files /dev/null and b/testing/resources/pixel/bug_551258_1_expected_mac.pdf.0.png differ -- cgit v1.2.3