summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qbitarray.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/tools/qbitarray.cpp')
-rw-r--r--src/corelib/tools/qbitarray.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/corelib/tools/qbitarray.cpp b/src/corelib/tools/qbitarray.cpp
index 8c750dd01cb..20fb7f53044 100644
--- a/src/corelib/tools/qbitarray.cpp
+++ b/src/corelib/tools/qbitarray.cpp
@@ -900,6 +900,10 @@ QDataStream &operator<<(QDataStream &out, const QBitArray &ba)
{
const qsizetype len = ba.size();
if (out.version() < QDataStream::Qt_6_0) {
+ if (Q_UNLIKELY(len > qsizetype{(std::numeric_limits<qint32>::max)()})) {
+ out.setStatus(QDataStream::WriteFailed); // ### SizeLimitExceeded
+ return out;
+ }
out << quint32(len);
} else {
out << quint64(len);