diff options
author | npm <npm@chromium.org> | 2017-01-09 07:52:30 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2017-01-09 07:52:30 -0800 |
commit | 661008dde7356ee2ed69787125863539b73b041c (patch) | |
tree | dcf7541b8fa233078919bd81c3e257f91c25351a /core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp | |
parent | 5f92eab76505fc6be2e5373390591a55be489b21 (diff) | |
download | pdfium-661008dde7356ee2ed69787125863539b73b041c.tar.xz |
Do not parse references with invalid objnum
We should not have valid objects where the object number is
CPDF_Object::kInvalidObjNum.
BUG=pdfium:609
Review-Url: https://codereview.chromium.org/2610393004
Diffstat (limited to 'core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp')
-rw-r--r-- | core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp index faaa83dd19..64c33ba9cd 100644 --- a/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp +++ b/core/fpdfapi/parser/cpdf_syntax_parser_unittest.cpp @@ -5,6 +5,7 @@ #include <limits> #include <string> +#include "core/fpdfapi/parser/cpdf_object.h" #include "core/fpdfapi/parser/cpdf_parser.h" #include "core/fpdfapi/parser/cpdf_syntax_parser.h" #include "core/fxcrt/fx_ext.h" @@ -143,3 +144,13 @@ TEST(cpdf_syntax_parser, ReadHexString) { EXPECT_EQ(1, parser.SavePos()); } } + +TEST(cpdf_syntax_parser, GetInvalidReference) { + CPDF_SyntaxParser parser; + // Data with a reference with number CPDF_Object::kInvalidObjNum + uint8_t data[] = "4294967295 0 R"; + parser.InitParser(IFX_MemoryStream::Create(data, 14, false), 0); + std::unique_ptr<CPDF_Object> ref = + parser.GetObject(nullptr, CPDF_Object::kInvalidObjNum, 0, false); + EXPECT_FALSE(ref); +} |