Skip to content

Commit 6e3f71b

Browse files
theuniFuzzbawls
authored andcommitted
net: only disconnect if fDisconnect has been set
These conditions are problematic to check without locking, and we shouldn't be relying on the refcount to disconnect.
1 parent 1b0beb6 commit 6e3f71b

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

src/net.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1056,8 +1056,7 @@ void CConnman::ThreadSocketHandler()
10561056
// Disconnect unused nodes
10571057
std::vector<CNode*> vNodesCopy = vNodes;
10581058
for (CNode* pnode : vNodesCopy) {
1059-
if (pnode->fDisconnect ||
1060-
(pnode->GetRefCount() <= 0 && pnode->vRecvMsg.empty() && pnode->nSendSize == 0 && pnode->ssSend.empty())) {
1059+
if (pnode->fDisconnect) {
10611060
// remove from vNodes
10621061
vNodes.erase(remove(vNodes.begin(), vNodes.end(), pnode), vNodes.end());
10631062

0 commit comments

Comments
 (0)