summaryrefslogtreecommitdiffstats
path: root/src/corelib/serialization/qdatastream.h
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2024-01-23 16:39:38 +0100
committerIvan Solovev <ivan.solovev@qt.io>2024-01-26 15:10:16 +0100
commit36cc9fc54a1b581e5fd9377e0ddbcd1670ab447f (patch)
tree973b913490aa1eb3f4c852bf5d19068992ca8ba2 /src/corelib/serialization/qdatastream.h
parent61130d73d47249fb1106ed86f8da908c96fe11c7 (diff)
QDataStream: add a new SizeLimitExceeded status code
This status is supposed to be used when the stream tries to read or write more data than it is supported by the current platform. For example, reading more than 2 GiB of data on a 32-bit platform will result into this status, but it will work fine on a 64-bit platform. This patch uses the new status in read operations. Amends fd48ce0b73c74dafd5db27bc1f2752ef665df7ef Found in 6.7 API review Pick-to: 6.7 Change-Id: I675b1ee25fafba174ce8f94c3470dbb7893d6d9e Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/serialization/qdatastream.h')
-rw-r--r--src/corelib/serialization/qdatastream.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/corelib/serialization/qdatastream.h b/src/corelib/serialization/qdatastream.h
index 4ed62f4ffb..8b1cf110cd 100644
--- a/src/corelib/serialization/qdatastream.h
+++ b/src/corelib/serialization/qdatastream.h
@@ -102,7 +102,8 @@ public:
Ok,
ReadPastEnd,
ReadCorruptData,
- WriteFailed
+ WriteFailed,
+ SizeLimitExceeded,
};
enum FloatingPointPrecision {
@@ -268,7 +269,7 @@ QDataStream &readArrayBasedContainer(QDataStream &s, Container &c)
qint64 size = QDataStream::readQSizeType(s);
qsizetype n = size;
if (size != n || size < 0) {
- s.setStatus(QDataStream::ReadCorruptData);
+ s.setStatus(QDataStream::SizeLimitExceeded);
return s;
}
c.reserve(n);
@@ -294,7 +295,7 @@ QDataStream &readListBasedContainer(QDataStream &s, Container &c)
qint64 size = QDataStream::readQSizeType(s);
qsizetype n = size;
if (size != n || size < 0) {
- s.setStatus(QDataStream::ReadCorruptData);
+ s.setStatus(QDataStream::SizeLimitExceeded);
return s;
}
for (qsizetype i = 0; i < n; ++i) {
@@ -319,7 +320,7 @@ QDataStream &readAssociativeContainer(QDataStream &s, Container &c)
qint64 size = QDataStream::readQSizeType(s);
qsizetype n = size;
if (size != n || size < 0) {
- s.setStatus(QDataStream::ReadCorruptData);
+ s.setStatus(QDataStream::SizeLimitExceeded);
return s;
}
for (qsizetype i = 0; i < n; ++i) {