diff --git a/src/jamidht/p2p.cpp b/src/jamidht/p2p.cpp index 73c99971b3d3b507352dcabb9f7169677e187781..35ca45ccafb96c4e81d5f00f4e38229d18b4364d 100644 --- a/src/jamidht/p2p.cpp +++ b/src/jamidht/p2p.cpp @@ -743,9 +743,11 @@ DhtPeerConnector::Impl::answerToRequest(PeerConnectionMsg&& request, std::move( waitForReadyEndpoints_[idx])); connection->setOnStateChangedCb( - [this, peer_h](const DRing::DataTransferId& id, - const DRing::DataTransferEventCode& code) { - stateChanged(peer_h, id, code); + [w = weak(), peer_h](const DRing::DataTransferId& id, + const DRing::DataTransferEventCode& code) { + if (auto sthis = w.lock()) { + sthis->stateChanged(peer_h, id, code); + } }); connection->attachOutputStream(std::make_shared<FtpServer>(accountId, peer_h)); {