From 40a73d7c63950caef47571ce9c53624e86324db3 Mon Sep 17 00:00:00 2001 From: Rohan McGovern Date: Tue, 1 May 2012 15:02:48 +1000 Subject: Fixed uninitialized memory in QMetaObjectBuilder::fromRelocatableData static_metacall was never set on the metaobject written by QMetaObjectBuilder::fromRelocatableData, sometimes causing a crash. It should be initialized to 0. Change-Id: I79373d895e131f0cc2ff1af6d2177a0c1a282be7 Reviewed-by: Toby Tomkins Reviewed-by: Olivier Goffart --- src/corelib/kernel/qmetaobjectbuilder.cpp | 1 + .../corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/corelib/kernel/qmetaobjectbuilder.cpp b/src/corelib/kernel/qmetaobjectbuilder.cpp index 7736181463..16ff58e1ca 100644 --- a/src/corelib/kernel/qmetaobjectbuilder.cpp +++ b/src/corelib/kernel/qmetaobjectbuilder.cpp @@ -1536,6 +1536,7 @@ void QMetaObjectBuilder::fromRelocatableData(QMetaObject *output, output->d.data = reinterpret_cast(buf + dataOffset); output->d.extradata = 0; output->d.relatedMetaObjects = 0; + output->d.static_metacall = 0; } /*! diff --git a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp index 8ae79e03a7..cfb23989dc 100644 --- a/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp +++ b/tests/auto/corelib/kernel/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp @@ -1097,6 +1097,11 @@ void tst_QMetaObjectBuilder::relocatableData() QMetaObject *meta = builder.toMetaObject(); QVERIFY(sameMetaObject(meta, &meta2)); + + QVERIFY(!meta2.d.extradata); + QVERIFY(!meta2.d.relatedMetaObjects); + QVERIFY(!meta2.d.static_metacall); + free(meta); } -- cgit v1.2.3