diff options
author | Simon Hausmann <simon.hausmann@digia.com> | 2013-05-21 10:27:25 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2013-05-21 10:34:49 +0200 |
commit | 4d628bfca64cbbaf2904748d18f04dbc74545312 (patch) | |
tree | 738b35eaf6f55f23a2eb95167fa673d5d9b12940 /src/qml/qml/qqmlvmemetaobject.cpp | |
parent | ff52a87fe35352c15e8d96caa244b3987a625b02 (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.cpp | 2 |
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]); |