diff options
author | Lei Zhang <thestig@chromium.org> | 2017-04-28 13:44:31 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-04-28 21:58:06 +0000 |
commit | 84faa032e327ad61e38197114a164e969051b5af (patch) | |
tree | 12839bd4a16e77b9ad489c56caf85e8709e7261e /core/fxcrt/xml/cxml_element.cpp | |
parent | 9ebdfcb1cb8f7498afa4a2680b944d13a9fac6a5 (diff) | |
download | pdfium-84faa032e327ad61e38197114a164e969051b5af.tar.xz |
Limit recursion in CXML_Parser::ParseElement().
BUG=chromium:716526
Change-Id: Idbe4624ab2193cee2931c69ed023dd2c1679d124
Reviewed-on: https://pdfium-review.googlesource.com/4615
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Diffstat (limited to 'core/fxcrt/xml/cxml_element.cpp')
-rw-r--r-- | core/fxcrt/xml/cxml_element.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/core/fxcrt/xml/cxml_element.cpp b/core/fxcrt/xml/cxml_element.cpp index 17caebfa14..95a6dba147 100644 --- a/core/fxcrt/xml/cxml_element.cpp +++ b/core/fxcrt/xml/cxml_element.cpp @@ -9,6 +9,15 @@ #include "core/fxcrt/xml/cxml_content.h" #include "core/fxcrt/xml/cxml_parser.h" +// static +std::unique_ptr<CXML_Element> CXML_Element::Parse(const void* pBuffer, + size_t size) { + CXML_Parser parser; + if (!parser.Init(static_cast<const uint8_t*>(pBuffer), size)) + return nullptr; + return parser.ParseElement(nullptr, false); +} + CXML_Element::CXML_Element(const CXML_Element* pParent, const CFX_ByteStringC& qSpace, const CFX_ByteStringC& tagname) |