aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime
diff options
context:
space:
mode:
authorMaximilian Goldstein <max.goldstein@qt.io>2021-06-09 15:02:45 +0200
committerMaximilian Goldstein <max.goldstein@qt.io>2021-06-09 17:03:00 +0200
commit7fa28f98824a94396106eadfc028b329985a0cfc (patch)
treeb6db031923c6faef1b740749b921568a52274da3 /src/qml/jsruntime
parent8238309e817e2fdcd409da7fc2d8531440b453cd (diff)
qv4function: Fix crash due to reference being invalidated
Function::updateInternalClass creates a reference to a QStringList that is appended to before being used. This is unsafe and can leads to a segfault if the append() causes a reallocation. Fixes: QTBUG-94360 Pick-to: 5.15 6.1 6.2 Change-Id: Iac49e8d816cf440ca2b70e133c88314eb8df6b91 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r--src/qml/jsruntime/qv4function.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4function.cpp b/src/qml/jsruntime/qv4function.cpp
index f6001da1f8..db767085da 100644
--- a/src/qml/jsruntime/qv4function.cpp
+++ b/src/qml/jsruntime/qv4function.cpp
@@ -168,7 +168,7 @@ void Function::updateInternalClass(ExecutionEngine *engine, const QList<QByteArr
if (duplicate == -1) {
parameterNames.append(QString::fromUtf8(param));
} else {
- const QString &dup = parameterNames[duplicate];
+ const QString dup = parameterNames[duplicate];
parameterNames.append(dup);
parameterNames[duplicate] =
QString(QChar(0xfffe)) + QString::number(duplicate) + dup;