From 2365f80422aedd753113b8d148b5860ba67cab9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?= Date: Thu, 12 May 2022 15:45:04 +0300 Subject: Fix crash when unplugging/plugging ethernet cable We do not remove the ethernet service (network) when cable is disconnected. Instead it's "hold in place" via placeholder but that is not checked and plugging cable back will cause crash. Fixes: QTBUG-103327 Change-Id: If14a4f28217ba5883dbc23ba42a1e91b004b7d58 Reviewed-by: Samuli Piippo (cherry picked from commit 26b002e1388d197772b56d471a6dd6ecc4ab2509) Reviewed-by: Qt Cherry-pick Bot --- src/networksettings/connman/qnetworksettingsmanager_p.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/networksettings/connman/qnetworksettingsmanager_p.cpp b/src/networksettings/connman/qnetworksettingsmanager_p.cpp index eb2c1e7..bc92f97 100644 --- a/src/networksettings/connman/qnetworksettingsmanager_p.cpp +++ b/src/networksettings/connman/qnetworksettingsmanager_p.cpp @@ -260,9 +260,11 @@ void QNetworkSettingsManagerPrivate::onServicesChanged(ConnmanMapStructList chan emit q->servicesChanged(); if (auto service = m_unnamedServices.take(path)) - service->deleteLater(); + if (!service->placeholderState()) + service->deleteLater(); if (auto service = m_unknownServices.take(path)) - service->deleteLater(); + if (!service->placeholderState()) + service->deleteLater(); m_unnamedServicesForSsidConnection.remove(path); // do not delete here } -- cgit v1.2.3