OSDN Git Service

use unintialized buffers in QNetworkAccessFileBackend::readMoreFromFile() and QSslSoc...
authorIvailo Monev <xakepa10@gmail.com>
Sun, 27 Jun 2021 21:34:01 +0000 (00:34 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Sun, 27 Jun 2021 21:34:01 +0000 (00:34 +0300)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/network/access/qnetworkaccessfilebackend.cpp
src/network/ssl/qsslsocket.cpp

index 85eae7d..9d24a4f 100644 (file)
@@ -223,8 +223,7 @@ bool QNetworkAccessFileBackend::readMoreFromFile()
         // ### FIXME!!
         // Obtain a pointer from the ringbuffer!
         // Avoid extra copy
-        QByteArray data;
-        data.reserve(wantToRead);
+        QByteArray data(wantToRead, Qt::Uninitialized);
         qint64 actuallyRead = file.read(data.data(), wantToRead);
         if (actuallyRead <= 0) {
             // EOF or error
index d997a4f..9add96c 100644 (file)
@@ -2239,8 +2239,7 @@ QByteArray QSslSocketPrivate::peek(qint64 maxSize)
     if (mode == QSslSocket::UnencryptedMode && !autoStartHandshake) {
         //unencrypted mode - do not use QIODevice::peek, as it reads ahead data from the plain socket
         //peek at data already in the QIODevice buffer (from a previous read)
-        QByteArray ret;
-        ret.reserve(maxSize);
+        QByteArray ret(maxSize, Qt::Uninitialized);
         ret.resize(buffer.peek(ret.data(), maxSize));
         if (ret.length() == maxSize)
             return ret;