aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlvmemetaobject.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2013-05-21 10:27:25 +0200
committerLars Knoll <lars.knoll@digia.com>2013-05-21 10:34:49 +0200
commit4d628bfca64cbbaf2904748d18f04dbc74545312 (patch)
tree738b35eaf6f55f23a2eb95167fa673d5d9b12940 /src/qml/qml/qqmlvmemetaobject.cpp
parentff52a87fe35352c15e8d96caa244b3987a625b02 (diff)
Fix crashes when invoking QML JS methods from C++
Make sure to size the QVarLengthArray properly to avoid out-of-bounds access. Change-Id: Id075730ffa2e366a729b401b8563ad7fd59597de Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/qml/qml/qqmlvmemetaobject.cpp')
-rw-r--r--src/qml/qml/qqmlvmemetaobject.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp
index 838950cbdd..d40eeff9a5 100644
--- a/src/qml/qml/qqmlvmemetaobject.cpp
+++ b/src/qml/qml/qqmlvmemetaobject.cpp
@@ -927,7 +927,7 @@ int QQmlVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a)
QQmlVMEMetaData::MethodData *data = metaData->methodData() + id;
- QVarLengthArray<QV4::Value, 9> args;
+ QVarLengthArray<QV4::Value, 9> args(data->parameterCount);
for (int ii = 0; ii < data->parameterCount; ++ii)
args[ii] = ep->v8engine()->fromVariant(*(QVariant *)a[ii + 1]);