diff options
author | Maximilian Goldstein <max.goldstein@qt.io> | 2021-06-09 15:02:45 +0200 |
---|---|---|
committer | Maximilian Goldstein <max.goldstein@qt.io> | 2021-06-09 17:03:00 +0200 |
commit | 7fa28f98824a94396106eadfc028b329985a0cfc (patch) | |
tree | b6db031923c6faef1b740749b921568a52274da3 /src/qml/jsruntime | |
parent | 8238309e817e2fdcd409da7fc2d8531440b453cd (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.cpp | 2 |
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; |