summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDyami Caliri <dyami@dragonframe.com>2014-05-07 16:36:04 -0700
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-05-18 18:29:35 +0200
commit71006cf04c6a3d1f44efb3d59eb136f4f589bccf (patch)
treebf39bea52c251c39160ac143c538bd0b42a4691a /src
parent518d874bc8cd43a6e87700be00c6f5132288bd35 (diff)
CoreWLan: wait for scan thread to finish
If the scan thread is running when QCoreWlanEngine is destroyed it will access stale data and cause a crash. Task-number: QTBUG-36000 Change-Id: I8cc9e39a3f7d4736da39e8b31f6963db35318f19 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com> Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/bearer/corewlan/qcorewlanengine.mm2
-rw-r--r--src/plugins/bearer/corewlan/qcorewlanengine_10_6.mm2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm
index 2d8b9be092..554ad26e51 100644
--- a/src/plugins/bearer/corewlan/qcorewlanengine.mm
+++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm
@@ -419,6 +419,8 @@ QCoreWlanEngine::QCoreWlanEngine(QObject *parent)
QCoreWlanEngine::~QCoreWlanEngine()
{
+ scanThread->wait(5000);
+
while (!foundConfigurations.isEmpty())
delete foundConfigurations.takeFirst();
[listener remove];
diff --git a/src/plugins/bearer/corewlan/qcorewlanengine_10_6.mm b/src/plugins/bearer/corewlan/qcorewlanengine_10_6.mm
index 057aec5487..ba1cf33258 100644
--- a/src/plugins/bearer/corewlan/qcorewlanengine_10_6.mm
+++ b/src/plugins/bearer/corewlan/qcorewlanengine_10_6.mm
@@ -404,6 +404,8 @@ QCoreWlanEngine::QCoreWlanEngine(QObject *parent)
QCoreWlanEngine::~QCoreWlanEngine()
{
+ scanThread->wait(5000);
+
while (!foundConfigurations.isEmpty())
delete foundConfigurations.takeFirst();
[listener remove];