qt6-bb10/tests/auto/xml/dom/qdom
Tatiana Borisova 948599e7b7 QDomDocument::toByteArray() crashed in case of high XML nesting level
The issue the combination of:
- 300+ XML nesting level
- Small stack size, by default on Windows (1 MB)
- Unexpected and unexplained large stack frames with MSVC (3.5 kB)

The described factors combination leads to the stack overflow on
Windows + MSVC.

To fix the problem, I got rid of the recursive call from
QDomElementPrivate::save() and removed QDomNodePrivate::save()
implementation.

Instead of those I added the method that iterates through the tree not
using recursion.

[ChangeLog][QtXml] QDomDocument::toByteArray() now iterates the
nodes of the document instead of recursing into subnodes. This avoids
a stack-overflow crash that used to arise with deeply-nested document
structures.

Fixes: QTBUG-131151
Change-Id: Ib74aaef1422716f2aafcb89dfc8c05ef334e2a54
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 387633a6069a5e0e9b976971691b1b82725b6132)
2024-12-06 11:53:53 +01:00
..
testdata QDomDocument::toByteArray() crashed in case of high XML nesting level 2024-12-06 11:53:53 +01:00
.gitattributes Moved xml autotests into new directory structure 2011-09-06 10:31:40 +02:00
.gitignore Moved xml autotests into new directory structure 2011-09-06 10:31:40 +02:00
CMakeLists.txt QtXml: fix leak in QDomText::splitText 2024-03-02 21:22:53 +01:00
doubleNamespaces.xml Moved xml autotests into new directory structure 2011-09-06 10:31:40 +02:00
tst_qdom.cpp QDomDocument::toByteArray() crashed in case of high XML nesting level 2024-12-06 11:53:53 +01:00
umlaut.xml Moved xml autotests into new directory structure 2011-09-06 10:31:40 +02:00