From 95cb2a1b5caf7d7158dd1176380c1458ea22b54f Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sun, 18 Dec 2011 15:33:52 +0100 Subject: [PATCH] Fix access to uninitialised memory that might lead to crashes QMetaObject is POD, so its constructor is implicit and trivial (doesn't initialise anything). QAbstractDynamicMetaObject doesn't add a constructor, so the QMetaObject sub-object remains uninitialised. The users of either class must ensure they initialise the members if they will be accessed. Change-Id: Ibb7f55ff23b78afb1fcb87382b30c8a28804c028 Task: QTBUG-23214 Reviewed-by: Rafael Roquetto Reviewed-by: Martin Jones --- src/qml/qml/qqmlscript.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/qml/qml/qqmlscript.cpp b/src/qml/qml/qqmlscript.cpp index b1bb5ed866..5104ba8979 100644 --- a/src/qml/qml/qqmlscript.cpp +++ b/src/qml/qml/qqmlscript.cpp @@ -66,6 +66,11 @@ QQmlScript::Object::Object() : type(-1), idIndex(-1), metatype(0), synthCache(0), defaultProperty(0), parserStatusCast(-1), componentCompileState(0), nextAliasingObject(0), nextIdObject(0) { + // initialize the members in the meta object + extObject.d.superdata = 0; + extObject.d.stringdata = 0; + extObject.d.data = 0; + extObject.d.extradata = 0; } QQmlScript::Object::~Object()