summaryrefslogtreecommitdiff
path: root/testing/resources
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-06-13 15:21:14 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-06-13 19:33:05 +0000
commit957480c17682008ae2a14723868fcdcab89b6577 (patch)
treecf5f1cb09c4385b7a107d8c8efcc99ea046849f8 /testing/resources
parent6500c6faf82f636d55c9ca5682711022890bef1d (diff)
downloadpdfium-957480c17682008ae2a14723868fcdcab89b6577.tar.xz
Allow zero length streams when parsing.chromium/3130
It's possible to create a stream of length 0 in a PDF document. Currently the code will early exit and return a nullptr. This causes issues when you want to print the given PDF as the FPDF_ImportPages code ends up only generating up to the zero length object. This CL allows creating streams with length 0 and updates the PDF saving code to output a blank stream. Bug: chromium:732380 Change-Id: I44182ba4aaac7c51284b002ba01bbc34b6bcf9e0 Reviewed-on: https://pdfium-review.googlesource.com/6490 Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'testing/resources')
-rw-r--r--testing/resources/zero_length_stream.in63
-rw-r--r--testing/resources/zero_length_stream.pdf74
2 files changed, 137 insertions, 0 deletions
diff --git a/testing/resources/zero_length_stream.in b/testing/resources/zero_length_stream.in
new file mode 100644
index 0000000000..5b258d4d74
--- /dev/null
+++ b/testing/resources/zero_length_stream.in
@@ -0,0 +1,63 @@
+{{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 7 0 R]
+>>
+endobj
+{{object 4 0}} <<
+ /Type /Font
+ /Subtype /Type1
+ /BaseFont /Times-Roman
+>>
+endobj
+{{object 5 0}} <<
+ /Type /Font
+ /Subtype /Type1
+ /BaseFont /Helvetica
+>>
+endobj
+{{object 6 0}} <<
+ /Filter /FlateDecode
+ /Length 0
+>>
+stream
+endstream
+endobj
+{{object 7 0}} <<
+>>
+stream
+BT
+20 50 Td
+/F1 12 Tf
+(Hello, world!) Tj
+0 50 Td
+/F2 16 Tf
+(Goodbye, world!) Tj
+ET
+endstream
+endobj
+{{xref}}
+trailer <<
+ /Size 6
+ /Root 1 0 R
+>>
+{{startxref}}
+%%EOF
diff --git a/testing/resources/zero_length_stream.pdf b/testing/resources/zero_length_stream.pdf
new file mode 100644
index 0000000000..90fae5be7f
--- /dev/null
+++ b/testing/resources/zero_length_stream.pdf
@@ -0,0 +1,74 @@
+%PDF-1.7
+% ò¤ô
+1 0 obj <<
+ /Type /Catalog
+ /Pages 2 0 R
+>>
+2 0 obj <<
+ /Type /Pages
+ /MediaBox [ 0 0 200 200 ]
+ /Count 1
+ /Kids [ 3 0 R ]
+>>
+endobj
+3 0 obj <<
+ /Type /Page
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 4 0 R
+ /F2 5 0 R
+ >>
+ >>
+ /Contents [6 0 R 7 0 R]
+>>
+endobj
+4 0 obj <<
+ /Type /Font
+ /Subtype /Type1
+ /BaseFont /Times-Roman
+>>
+endobj
+5 0 obj <<
+ /Type /Font
+ /Subtype /Type1
+ /BaseFont /Helvetica
+>>
+endobj
+6 0 obj <<
+ /Filter /FlateDecode
+ /Length 0
+>>
+stream
+endstream
+endobj
+7 0 obj <<
+>>
+stream
+BT
+20 50 Td
+/F1 12 Tf
+(Hello, world!) Tj
+0 50 Td
+/F2 16 Tf
+(Goodbye, world!) Tj
+ET
+endstream
+endobj
+xref
+0 8
+0000000000 65535 f
+0000000015 00000 n
+0000000061 00000 n
+0000000154 00000 n
+0000000304 00000 n
+0000000382 00000 n
+0000000458 00000 n
+0000000531 00000 n
+trailer <<
+ /Size 6
+ /Root 1 0 R
+>>
+startxref
+652
+%%EOF