aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@digia.com>2014-08-06 15:18:08 +0200
committerJ-P Nurmi <jpnurmi@digia.com>2014-08-08 06:37:42 +0200
commitca248a5b8edc4341da66d15186770539a7c16ddd (patch)
treea12d1a091d91711593ec53b1f8b385ea20f66de5 /tests
parent5b6be6456f30afd9728abe4fe0588fb88cc9bfaf (diff)
Fix use-after-free in testcase.
The call to setActive does a deleteLater on the window. Then the QTRY_* macros run the event loop, thereby deleting the window. So, after wrapping the window in a QPointer, that pointer must either be null, or the window shouldn't be visible. Change-Id: Ib3fc5c5284bd5dae378a0f6a17117b262b9a3687 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/quick/qquickwindow/tst_qquickwindow.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
index 6c1d46b191..7b23d144a9 100644
--- a/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
+++ b/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
@@ -1768,14 +1768,14 @@ void tst_qquickwindow::unloadSubWindow()
QVERIFY(window);
window->show();
QTest::qWaitForWindowExposed(window);
- QQuickWindow *transient = Q_NULLPTR;
+ QPointer<QQuickWindow> transient;
QTRY_VERIFY(transient = window->property("transientWindow").value<QQuickWindow*>());
QTest::qWaitForWindowExposed(transient);
// Unload the inner window (in nested Loaders) and make sure it doesn't crash
QQuickLoader *loader = window->property("loader1").value<QQuickLoader*>();
loader->setActive(false);
- QTRY_VERIFY(!transient->isVisible());
+ QTRY_VERIFY(transient.isNull() || !transient->isVisible());
}
// QTBUG-32004