diff options
author | Dyami Caliri <dyami@dragonframe.com> | 2014-05-07 16:36:04 -0700 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-18 18:29:35 +0200 |
commit | 71006cf04c6a3d1f44efb3d59eb136f4f589bccf (patch) | |
tree | bf39bea52c251c39160ac143c538bd0b42a4691a /src/plugins/bearer | |
parent | 518d874bc8cd43a6e87700be00c6f5132288bd35 (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/plugins/bearer')
-rw-r--r-- | src/plugins/bearer/corewlan/qcorewlanengine.mm | 2 | ||||
-rw-r--r-- | src/plugins/bearer/corewlan/qcorewlanengine_10_6.mm | 2 |
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]; |