From 64d347d9213f4f1daaea3318cb6aae4521bef1b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Mon, 21 Mar 2022 12:49:51 +0100 Subject: [PATCH] Fix crash for long taking mac address loockup --- libnymea/network/networkdevicediscovery.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libnymea/network/networkdevicediscovery.cpp b/libnymea/network/networkdevicediscovery.cpp index 54e26064..7d246270 100644 --- a/libnymea/network/networkdevicediscovery.cpp +++ b/libnymea/network/networkdevicediscovery.cpp @@ -209,6 +209,9 @@ void NetworkDeviceDiscovery::finishDiscovery() void NetworkDeviceDiscovery::updateOrAddNetworkDeviceArp(const QNetworkInterface &interface, const QHostAddress &address, const QString &macAddress, const QString &manufacturer) { + if (!m_currentReply) + return; + int index = m_currentReply->networkDeviceInfos().indexFromHostAddress(address); if (index >= 0) { // Update the network device @@ -257,7 +260,7 @@ void NetworkDeviceDiscovery::onArpResponseRceived(const QNetworkInterface &inter // Lookup the mac address vendor if possible if (m_macAddressDatabase->available()) { MacAddressDatabaseReply *reply = m_macAddressDatabase->lookupMacAddress(macAddress); - connect(reply, &MacAddressDatabaseReply::finished, this, [=](){ + connect(reply, &MacAddressDatabaseReply::finished, m_currentReply, [=](){ qCDebug(dcNetworkDeviceDiscovery()) << "MAC manufacturer lookup finished for" << macAddress << ":" << reply->manufacturer(); updateOrAddNetworkDeviceArp(interface, address, macAddress, reply->manufacturer()); });