Skip to content

Commit 476db11

Browse files
committed
fix: Modify network service crash issue
Smart pointer causes multiple releases pms: BUG-308701
1 parent a2e5b06 commit 476db11

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

network-service-plugin/accountnetwork/session/accountnetwork/activeaccoutnetwork.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,11 @@ void ActiveAccountNetwork::onActiveConnectionChanged()
345345

346346
void ActiveAccountNetwork::onStateChanged(NetworkManager::ActiveConnection::State state)
347347
{
348-
NetworkManager::ActiveConnection::Ptr activeConnection(qobject_cast<NetworkManager::ActiveConnection *>(sender()));
348+
NetworkManager::ActiveConnection *activeConn = qobject_cast<NetworkManager::ActiveConnection *>(sender());
349+
if (!activeConn) {
350+
return;
351+
}
352+
const NetworkManager::ActiveConnection::Ptr activeConnection = NetworkManager::findActiveConnection(activeConn->path());
349353
if (!activeConnection) {
350354
return;
351355
}

network-service-plugin/system/networkinitialization.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ void NetworkInitialization::addFirstConnection(const QSharedPointer<NetworkManag
203203
// macAddress.remove(":");
204204
// wiredSetting->setMacAddress(QByteArray::fromHex(macAddress.toUtf8()));
205205
// wiredSetting->setInitialized(true);
206-
qWarning()<<__LINE__<<__FUNCTION__<<conn->toMap();
207206
QDBusPendingReply<QDBusObjectPath> reply = NetworkManager::addConnection(conn->toMap());
208207
reply.waitForFinished();
209208
qCDebug(DSM) << "device" << device->interfaceName() << "create connection success,count:" << device->availableConnections().size();
@@ -468,7 +467,8 @@ void NetworkInitialization::onInitDeviceConnection()
468467

469468
void NetworkInitialization::onAddFirstConnection()
470469
{
471-
QSharedPointer<NetworkManager::WiredDevice> device(qobject_cast<NetworkManager::WiredDevice *>(sender()));
470+
NetworkManager::WiredDevice *dev = qobject_cast<NetworkManager::WiredDevice *>(sender());
471+
NetworkManager::WiredDevice::Ptr device = NetworkManager::findNetworkInterface(dev->uni()).staticCast<NetworkManager::WiredDevice>();
472472
qCDebug(DSM) << "device" << device->interfaceName() << " carrier:" << device->carrier() << " managed:" << device->managed() << " interfaceFlags:" << device->interfaceFlags();
473473
addFirstConnection(device);
474474
}

0 commit comments

Comments
 (0)