From 0fa7374f1dc433b6b8955cb14dabb22c10f50854 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 23 Jan 2015 14:20:02 -0800 Subject: Ensure that the binary JSON objects are actually sorted QJsonObject requires that, since it does binary searches for the keys. Change-Id: I8a7a116f51864cecb52fffff13bc24660c1cc1ac Reviewed-by: Lars Knoll --- src/corelib/json/qjson.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/corelib') diff --git a/src/corelib/json/qjson.cpp b/src/corelib/json/qjson.cpp index 8fa172eae8..abba1f1b49 100644 --- a/src/corelib/json/qjson.cpp +++ b/src/corelib/json/qjson.cpp @@ -200,6 +200,7 @@ bool Object::isValid() const if (tableOffset + length*sizeof(offset) > size) return false; + QString lastKey; for (uint i = 0; i < length; ++i) { offset entryOffset = table()[i]; if (entryOffset + sizeof(Entry) >= tableOffset) @@ -208,8 +209,12 @@ bool Object::isValid() const int s = e->size(); if (table()[i] + s > tableOffset) return false; + QString key = e->key(); + if (key < lastKey) + return false; if (!e->value.isValid(this)) return false; + lastKey = key; } return true; } -- cgit v1.2.3