diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2015-03-17 16:01:05 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2015-03-18 07:34:59 +0000 |
commit | 0411240fdaada112d150f28f82973beb15478b1d (patch) | |
tree | 2349e4feaf90db735a83788f8a9792e72d5f378e /src/corelib/json | |
parent | 124da60c1de2cc63ad8692bd3a72e8769c6c1e5a (diff) |
Make sure remove() doesn't corrupt the json object
When using non latin keys, remove() could cause corruption
of the json object.
Task-number: QTBUG-42270
Change-Id: I7305e57ebb78630a9bf68bc4f831a6d1646abb79
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/json')
-rw-r--r-- | src/corelib/json/qjson_p.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/json/qjson_p.h b/src/corelib/json/qjson_p.h index b8430cabf5..5fc021c841 100644 --- a/src/corelib/json/qjson_p.h +++ b/src/corelib/json/qjson_p.h @@ -629,7 +629,7 @@ public: if (value.latinKey) s += sizeof(ushort) + qFromLittleEndian(*(ushort *) ((const char *)this + sizeof(Entry))); else - s += sizeof(uint) + qFromLittleEndian(*(int *) ((const char *)this + sizeof(Entry))); + s += sizeof(uint) + sizeof(ushort)*qFromLittleEndian(*(int *) ((const char *)this + sizeof(Entry))); return alignedSize(s); } |