QBitArray: use QDataStream::SizeLimitExeeded where applicable
[ChangeLog][QtCore][QBitArray] Uses new QDataStream::Status::SizeLimitExceeded now, where applicable (was: WriteFailed, ReadCorruptData). Change-Id: If5a8db9c6b2f104b40266784d88cf7cad0b0ce73 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> (cherry picked from commit 6504496c646be5ded0318fd4663945c41bb1b02f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
0985c707a9
commit
e69a151573
@ -897,7 +897,7 @@ QDataStream &operator<<(QDataStream &out, const QBitArray &ba)
|
|||||||
const qsizetype len = ba.size();
|
const qsizetype len = ba.size();
|
||||||
if (out.version() < QDataStream::Qt_6_0) {
|
if (out.version() < QDataStream::Qt_6_0) {
|
||||||
if (Q_UNLIKELY(len > qsizetype{(std::numeric_limits<qint32>::max)()})) {
|
if (Q_UNLIKELY(len > qsizetype{(std::numeric_limits<qint32>::max)()})) {
|
||||||
out.setStatus(QDataStream::WriteFailed); // ### SizeLimitExceeded
|
out.setStatus(QDataStream::Status::SizeLimitExceeded);
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
out << quint32(len);
|
out << quint32(len);
|
||||||
@ -933,7 +933,7 @@ QDataStream &operator>>(QDataStream &in, QBitArray &ba)
|
|||||||
quint64 tmp;
|
quint64 tmp;
|
||||||
in >> tmp;
|
in >> tmp;
|
||||||
if (Q_UNLIKELY(tmp > quint64((std::numeric_limits<qsizetype>::max)()))) {
|
if (Q_UNLIKELY(tmp > quint64((std::numeric_limits<qsizetype>::max)()))) {
|
||||||
in.setStatus(QDataStream::ReadCorruptData); // ### SizeLimitExeeded
|
in.setStatus(QDataStream::Status::SizeLimitExceeded);
|
||||||
return in;
|
return in;
|
||||||
}
|
}
|
||||||
len = tmp;
|
len = tmp;
|
||||||
|
@ -113,7 +113,7 @@ void tst_QBitArray::canHandleIntMaxBits()
|
|||||||
QDataStream ds(&serialized, QIODevice::WriteOnly);
|
QDataStream ds(&serialized, QIODevice::WriteOnly);
|
||||||
ds.setVersion(QDataStream::Qt_5_15);
|
ds.setVersion(QDataStream::Qt_5_15);
|
||||||
ds << ba;
|
ds << ba;
|
||||||
QCOMPARE(ds.status(), QDataStream::Status::WriteFailed); // ### SizeLimitExceeded
|
QCOMPARE(ds.status(), QDataStream::Status::SizeLimitExceeded);
|
||||||
serialized.clear();
|
serialized.clear();
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user