From 84faa032e327ad61e38197114a164e969051b5af Mon Sep 17 00:00:00 2001 From: Lei Zhang Date: Fri, 28 Apr 2017 13:44:31 -0700 Subject: Limit recursion in CXML_Parser::ParseElement(). BUG=chromium:716526 Change-Id: Idbe4624ab2193cee2931c69ed023dd2c1679d124 Reviewed-on: https://pdfium-review.googlesource.com/4615 Reviewed-by: Tom Sepez Commit-Queue: Lei Zhang --- core/fxcrt/xml/cxml_element.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'core/fxcrt/xml/cxml_element.cpp') 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::Parse(const void* pBuffer, + size_t size) { + CXML_Parser parser; + if (!parser.Init(static_cast(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) -- cgit v1.2.3