diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-05-05 01:00:54 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2018-05-05 01:00:55 +0200 |
commit | ba2b7b8e33635f29bae8e9e580b23a544de7727f (patch) | |
tree | 15514c09367f27944bd8a9198217639846e1a4b5 /src/corelib/serialization/qjson.cpp | |
parent | aadc294f2dd1c7e94a997f5797bc83b34d2c59ff (diff) | |
parent | 43ea15d01cd491639d8cb5eb85da066f5d0a8571 (diff) |
Merge remote-tracking branch 'origin/5.11' into dev
Change-Id: Ib58433da04bffb5dfab5486b80f17f39cc4145fa
Diffstat (limited to 'src/corelib/serialization/qjson.cpp')
-rw-r--r-- | src/corelib/serialization/qjson.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/corelib/serialization/qjson.cpp b/src/corelib/serialization/qjson.cpp index e4bca3bcd0..592f6168dc 100644 --- a/src/corelib/serialization/qjson.cpp +++ b/src/corelib/serialization/qjson.cpp @@ -328,7 +328,7 @@ int Value::usedStorage(const Base *b) const bool Value::isValid(const Base *b) const { - int offset = 0; + int offset = -1; switch (type) { case QJsonValue::Double: if (latinOrIntValue) @@ -345,14 +345,12 @@ bool Value::isValid(const Base *b) const break; } - if (!offset) + if (offset == -1) return true; - if (offset + sizeof(uint) > b->tableOffset) + if (offset + sizeof(uint) > b->tableOffset || offset < (int)sizeof(Base)) return false; int s = usedStorage(b); - if (!s) - return true; if (s < 0 || s > (int)b->tableOffset - offset) return false; if (type == QJsonValue::Array) |