From 71006cf04c6a3d1f44efb3d59eb136f4f589bccf Mon Sep 17 00:00:00 2001 From: Dyami Caliri Date: Wed, 7 May 2014 16:36:04 -0700 Subject: 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 Reviewed-by: Peter Hartmann --- src/plugins/bearer/corewlan/qcorewlanengine.mm | 2 ++ src/plugins/bearer/corewlan/qcorewlanengine_10_6.mm | 2 ++ 2 files changed, 4 insertions(+) (limited to 'src/plugins') 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]; -- cgit v1.2.3