Network device discovery: fix potential crash on unregister non existing monitor
This commit is contained in:
parent
b7f5a260ac
commit
52722d6cd9
@ -259,7 +259,7 @@ void NetworkDeviceDiscoveryImpl::unregisterMonitor(const MacAddress &macAddress)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (m_monitors.contains(macAddress)) {
|
if (m_monitors.contains(macAddress)) {
|
||||||
NetworkDeviceMonitor *monitor = m_monitors.take(macAddress);
|
NetworkDeviceMonitorImpl *monitor = m_monitors.take(macAddress);
|
||||||
qCInfo(dcNetworkDeviceDiscovery()) << "Unregister" << monitor;
|
qCInfo(dcNetworkDeviceDiscovery()) << "Unregister" << monitor;
|
||||||
monitor->deleteLater();
|
monitor->deleteLater();
|
||||||
m_monitorsReferenceCount.remove(macAddress);
|
m_monitorsReferenceCount.remove(macAddress);
|
||||||
@ -268,6 +268,12 @@ void NetworkDeviceDiscoveryImpl::unregisterMonitor(const MacAddress &macAddress)
|
|||||||
|
|
||||||
void NetworkDeviceDiscoveryImpl::unregisterMonitor(NetworkDeviceMonitor *networkDeviceMonitor)
|
void NetworkDeviceDiscoveryImpl::unregisterMonitor(NetworkDeviceMonitor *networkDeviceMonitor)
|
||||||
{
|
{
|
||||||
|
if (!networkDeviceMonitor)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!m_monitors.values().contains(qobject_cast<NetworkDeviceMonitorImpl *>(networkDeviceMonitor)))
|
||||||
|
return;
|
||||||
|
|
||||||
unregisterMonitor(MacAddress(networkDeviceMonitor->networkDeviceInfo().macAddress()));
|
unregisterMonitor(MacAddress(networkDeviceMonitor->networkDeviceInfo().macAddress()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user