diff options
author | Wei Li <weili@chromium.org> | 2016-01-11 14:05:41 -0800 |
---|---|---|
committer | Wei Li <weili@chromium.org> | 2016-01-11 14:05:41 -0800 |
commit | d3ab0f383f6736657480a8bb418c5e715a1aed3b (patch) | |
tree | 6bd44985062431e5d0e78c5d55a7e7cd2df54437 /fpdfsdk/src | |
parent | 494ea0af63620c6839f724111d0b955cbe93e1c3 (diff) | |
download | pdfium-d3ab0f383f6736657480a8bb418c5e715a1aed3b.tar.xz |
Fix an infinite loop parsing in CPDF_SyntaxParser::GetObject()
CPDF_SyntaxParser::GetObject() may enter into an infinite loop when a
signature dictionary doesn't have 'Contents' field. Add a check to
avoid that.
BUG=pdfium:344
R=thestig@chromium.org
Review URL: https://codereview.chromium.org/1575833004 .
Diffstat (limited to 'fpdfsdk/src')
-rw-r--r-- | fpdfsdk/src/fpdfview_embeddertest.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fpdfsdk/src/fpdfview_embeddertest.cpp b/fpdfsdk/src/fpdfview_embeddertest.cpp index 6a6d076983..3147c01660 100644 --- a/fpdfsdk/src/fpdfview_embeddertest.cpp +++ b/fpdfsdk/src/fpdfview_embeddertest.cpp @@ -221,4 +221,10 @@ TEST_F(FPDFViewEmbeddertest, CrossRefV4Loop) { // cause infinite loop. TEST_F(FPDFViewEmbeddertest, Hang_343) { EXPECT_FALSE(OpenDocument("bug_343.pdf")); +} + +// The test should pass when the absence of 'Contents' field in a signature +// dictionary will not cause an infinite loop in CPDF_SyntaxParser::GetObject(). +TEST_F(FPDFViewEmbeddertest, Hang_344) { + EXPECT_FALSE(OpenDocument("bug_344.pdf")); }
\ No newline at end of file |