diff options
| author | Amiti Uttarwar <[email protected]> | 2020-04-27 14:00:21 -0700 |
|---|---|---|
| committer | John Newbery <[email protected]> | 2020-04-29 10:54:55 -0400 |
| commit | e257cf71c851e25e1a533bf1d4296f6b55c81332 (patch) | |
| tree | f1af2ca9f28e204aa0f874b89f89255162d58e76 /src/net_processing.cpp | |
| parent | [net processing] ignore tx GETDATA from blocks-only peers (diff) | |
| download | discoin-e257cf71c851e25e1a533bf1d4296f6b55c81332.tar.xz discoin-e257cf71c851e25e1a533bf1d4296f6b55c81332.zip | |
[net processing] ignore unknown INV types in GETDATA messages
Co-Authored-By: John Newbery <[email protected]>
Diffstat (limited to 'src/net_processing.cpp')
| -rw-r--r-- | src/net_processing.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 7561e269e..533966a07 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -1645,18 +1645,14 @@ void static ProcessGetData(CNode* pfrom, const CChainParams& chainparams, CConnm } // release cs_main if (it != pfrom->vRecvGetData.end() && !pfrom->fPauseSend) { - const CInv &inv = *it; + const CInv &inv = *it++; if (inv.type == MSG_BLOCK || inv.type == MSG_FILTERED_BLOCK || inv.type == MSG_CMPCT_BLOCK || inv.type == MSG_WITNESS_BLOCK) { - it++; ProcessGetBlockData(pfrom, chainparams, inv, connman); } + // else: If the first item on the queue is an unknown type, we erase it + // and continue processing the queue on the next call. } - // Unknown types in the GetData stay in vRecvGetData and block any future - // message from this peer, see vRecvGetData check in ProcessMessages(). - // Depending on future p2p changes, we might either drop unknown getdata on - // the floor or disconnect the peer. - pfrom->vRecvGetData.erase(pfrom->vRecvGetData.begin(), it); if (!vNotFound.empty()) { |