summaryrefslogtreecommitdiffstats
path: root/src/xml
diff options
context:
space:
mode:
Diffstat (limited to 'src/xml')
-rw-r--r--src/xml/sax/qxml.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/xml/sax/qxml.cpp b/src/xml/sax/qxml.cpp
index 50900c17f0..0c5855cf07 100644
--- a/src/xml/sax/qxml.cpp
+++ b/src/xml/sax/qxml.cpp
@@ -5265,7 +5265,12 @@ bool QXmlSimpleReaderPrivate::parsePEReference()
return false;
}
if (ret) {
- xmlRefString = ret->data();
+ QString buffer = ret->data();
+ while (!buffer.isEmpty()) {
+ xmlRefString += buffer;
+ ret->fetchData();
+ buffer = ret->data();
+ }
delete ret;
if (!stripTextDecl(xmlRefString)) {
reportParseError(QLatin1String(XMLERR_ERRORINTEXTDECL));
@@ -7614,7 +7619,14 @@ bool QXmlSimpleReaderPrivate::processReference()
return false;
}
if (ret) {
- QString xmlRefString = ret->data();
+ QString xmlRefString;
+ QString buffer = ret->data();
+ while (!buffer.isEmpty()) {
+ xmlRefString += buffer;
+ ret->fetchData();
+ buffer = ret->data();
+ }
+
delete ret;
if (!stripTextDecl(xmlRefString)) {
reportParseError(QLatin1String(XMLERR_ERRORINTEXTDECL));