qUncompress: make a narrowing conversion explicit

... and add an assertion. The assertion can only trigger if our
definition of MaxDecompressedSize is wrong.

Pick-to: 6.4 6.3 6.2
Task-number: QTBUG-104972
Change-Id: Ifa375f59fb6ff5e0324d2208f4c2882174f9a44d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
bb10
Marc Mutz 2022-09-08 16:26:01 +02:00
parent 91d7dcea11
commit 454f4679ef
1 changed files with 2 additions and 1 deletions

View File

@ -633,7 +633,8 @@ QByteArray qUncompress(const uchar* data, qsizetype nbytes)
if (len > MaxDecompressedSize)
return invalidCompressedData();
QByteArray::DataPointer d(QByteArray::Data::allocate(len));
Q_ASSERT(len <= size_t((std::numeric_limits<qsizetype>::max)()));
QByteArray::DataPointer d(QByteArray::Data::allocate(qsizetype(len)));
if (d.data() == nullptr) // allocation failed
return invalidCompressedData();