From: Martin Jones Date: Thu, 5 May 2011 03:24:32 +0000 (+1000) Subject: Uninitialized memory is compared. X-Git-Tag: qt-v5.0.0-alpha1~2241^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=db49ce3f88653fffd6aa967a7acd73058ba1f214;p=profile%2Fivi%2Fqtdeclarative.git Uninitialized memory is compared. Memory is allocated and used without first clearing it. At the least this annoys valgrind, but also has potential for real problems. Change-Id: Icf3fd39f44ee0481dd732510e7f8b3ad6cef477d Task-number: QTBUG-15187 Reviewed-by: Aaron Kennedy (cherry picked from commit 95aa4e4f9b82c3652ffc93310b190db869d491df) --- diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp index 7f74da4..253d744 100644 --- a/src/declarative/qml/qdeclarativeproperty.cpp +++ b/src/declarative/qml/qdeclarativeproperty.cpp @@ -1451,6 +1451,7 @@ QByteArray QDeclarativePropertyPrivate::saveValueType(const QMetaObject *metaObj QMetaProperty subProp = subObject->property(subIndex); ValueTypeSerializedData sd; + memset(&sd, 0, sizeof(sd)); sd.isValueType = true; sd.core.load(metaObject->property(index)); sd.valueType.flags = QDeclarativePropertyCache::Data::flagsForProperty(subProp); @@ -1465,6 +1466,7 @@ QByteArray QDeclarativePropertyPrivate::saveValueType(const QMetaObject *metaObj QByteArray QDeclarativePropertyPrivate::saveProperty(const QMetaObject *metaObject, int index) { SerializedData sd; + memset(&sd, 0, sizeof(sd)); sd.isValueType = false; sd.core.load(metaObject->property(index)); diff --git a/src/declarative/qml/qmetaobjectbuilder.cpp b/src/declarative/qml/qmetaobjectbuilder.cpp index dc941e2..425678c 100644 --- a/src/declarative/qml/qmetaobjectbuilder.cpp +++ b/src/declarative/qml/qmetaobjectbuilder.cpp @@ -1448,6 +1448,7 @@ QMetaObject *QMetaObjectBuilder::toMetaObject() const { int size = buildMetaObject(d, 0, false); char *buf = reinterpret_cast(qMalloc(size)); + memset(buf, 0, size); buildMetaObject(d, buf, false); return reinterpret_cast(buf); } @@ -1477,6 +1478,7 @@ QByteArray QMetaObjectBuilder::toRelocatableData(bool *ok) const QByteArray data; data.resize(size); char *buf = data.data(); + memset(buf, 0, size); buildMetaObject(d, buf, true); if (ok) *ok = true; return data;