summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRobert Loehning <robert.loehning@qt.io>2020-08-11 14:22:58 +0200
committerRobert Loehning <robert.loehning@qt.io>2020-08-12 14:18:30 +0200
commit3e3fdbe831f24365780383b3c45a3d53f23ba435 (patch)
tree2bb189dfef2c9bc6550d6eca8b201f2e44e91c2d /src
parentca034e4e50c99634e2181c9d7ab217cec82f1639 (diff)
QXmlStreamReader: Don't resize readBuffer to a size it already has
Resizing it to 0 will cause it to allocate memory. This will then cause append() to copy the data from the other string instead of using copy on write. Task-number: oss-fuzz-24347 Pick-to: 5.12 5.15 Change-Id: I581bd109f9b973e1c70b7b41b1f610a2ad5725b8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/serialization/qxmlstream.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp
index 1296908110..ba6e3059df 100644
--- a/src/corelib/serialization/qxmlstream.cpp
+++ b/src/corelib/serialization/qxmlstream.cpp
@@ -1484,7 +1484,8 @@ uint QXmlStreamReaderPrivate::getChar_helper()
const int BUFFER_SIZE = 8192;
characterOffset += readBufferPos;
readBufferPos = 0;
- readBuffer.resize(0);
+ if (readBuffer.size())
+ readBuffer.resize(0);
if (decoder.isValid())
nbytesread = 0;
if (device) {