summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJamey Hicks <jamey.hicks@nokia.com>2011-12-02 16:37:42 -0500
committerKnoll Lars <lars.knoll@nokia.com>2011-12-05 10:13:24 +0100
commit0ca39f93362663d064fea0c00fa2213b6a8adfa2 (patch)
tree377a9979db46e38fbede28d6ab10bfe24556a189
parent422fe09794bcbea8d8dc368f77e86113d554f6a6 (diff)
Do not expect struct Header in JsonObject::fromData().
Change-Id: I4d5e36e82a09c1331354577cb0f6778eb50fb329 Reviewed-by: Knoll Lars <lars.knoll@nokia.com>
-rw-r--r--src/qbinaryjsonobject.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/qbinaryjsonobject.cpp b/src/qbinaryjsonobject.cpp
index a4e3c9a..b423d79 100644
--- a/src/qbinaryjsonobject.cpp
+++ b/src/qbinaryjsonobject.cpp
@@ -53,13 +53,15 @@ JsonObject JsonObject::fromData(const QByteArray &data)
Header *h = (Header *) data.constData();
if (h->version != 0)
return JsonObject();
+ if (h->size > data.size()) {
+ return JsonObject();
+ }
char *raw = (char *)malloc(data.size());
memcpy(raw, data.constData(), data.size());
Data *d = new Data(raw, data.size());
- h = (Header *) raw;
- return d->toObject(&h->root);
+ return d->toObject((Object *)raw);
}
JsonObject JsonObject::fromVariantMap(const QVariantMap &map)