diff --git a/llarp/service/lns_tracker.cpp b/llarp/service/lns_tracker.cpp index 8171ef435..862edf8f2 100644 --- a/llarp/service/lns_tracker.cpp +++ b/llarp/service/lns_tracker.cpp @@ -8,11 +8,11 @@ namespace llarp::service std::size_t numPeers, std::function)> resultHandler) { - auto itr = m_PendingLookups.emplace(name, LookupInfo{numPeers, resultHandler}).first; - auto& request = itr->second; - return [&, name](std::optional
found) { - if (request.HandleOneResult(found)) - m_PendingLookups.erase(name); + m_PendingLookups.emplace(name, LookupInfo{numPeers, resultHandler}); + return [name, this](std::optional
found) { + auto itr = m_PendingLookups.find(name); + if (itr != m_PendingLookups.end() and itr->second.HandleOneResult(found)) + m_PendingLookups.erase(itr); }; }