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 <rafael.roquetto@kdab.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
This commit is contained in:
Thiago Macieira 2011-12-18 15:33:52 +01:00 committed by Qt by Nokia
parent 9218820804
commit 95cb2a1b5c
1 changed files with 5 additions and 0 deletions

View File

@ -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()