From fe40b8f4ad5a44ddaa6e2e6c4fc1f6745820a228 Mon Sep 17 00:00:00 2001 From: Jiang Jiang Date: Tue, 10 Jul 2012 10:32:03 +0200 Subject: [PATCH] Avoid loading multiple bearer plugins of the same key There may be duplicated debug plugins, loading both will cause crash. Change-Id: Icc2a3643c318844bc7f2e149a6434e95de2449b2 Reviewed-by: Thiago Macieira --- src/network/bearer/qnetworkconfigmanager_p.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/network/bearer/qnetworkconfigmanager_p.cpp b/src/network/bearer/qnetworkconfigmanager_p.cpp index ce04934..e44b689 100644 --- a/src/network/bearer/qnetworkconfigmanager_p.cpp +++ b/src/network/bearer/qnetworkconfigmanager_p.cpp @@ -383,8 +383,13 @@ void QNetworkConfigurationManagerPrivate::updateConfigurations() QFactoryLoader *l = loader(); const PluginKeyMap keyMap = l->keyMap(); const PluginKeyMapConstIterator cend = keyMap.constEnd(); + QStringList addedEngines; for (PluginKeyMapConstIterator it = keyMap.constBegin(); it != cend; ++it) { const QString &key = it.value(); + if (addedEngines.contains(key)) + continue; + + addedEngines.append(key); if (QBearerEngine *engine = qLoadPlugin(l, key)) { if (key == QLatin1String("generic")) generic = engine; -- 2.7.4