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>
This commit is contained in:
Robert Loehning 2020-08-11 14:22:58 +02:00
parent ca034e4e50
commit 3e3fdbe831

View File

@ -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) {