Skip to content
Snippets Groups Projects
Commit 9ac321c6 authored by Filip Roséen's avatar Filip Roséen Committed by Jean-Baptiste Kempf
Browse files

demux/adaptive: DOMParser: retain root element if empty


An XML file containing a single root element without children would,
given the previous implementation, have its only element ignored.
Resulting in a memory-leak of the node in question, while also (more
importantly) making it impossible to access the associated data.

As XML does not allow documents such as the below (only a single root
is allowed):

   <?xml version="1.0">
   <ill-formed />
   <ill-formed></ill-formed>

Simply checking to see so that we are not popping away all our tags
are sufficient in order to fix this bug. The changes also make sure
that we do not invoke std::stack<...>::pop on an empty container
(which is undefined-behavior).

fixes: #18122

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent aa032f0a
No related branches found
No related tags found
No related merge requests found
......@@ -112,7 +112,7 @@ Node* DOMParser::processNode(bool b_strict)
addAttributesToNode(node);
}
if(empty)
if(empty && lifo.size() > 1)
lifo.pop();
break;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment