0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-03-06 14:19:59 -05:00

Merge bitcoin/bitcoin#25370: test: check for getblocktxn request with out-of-bounds tx index

5a8c321444 test: check for `getblocktxn` request with out-of-bounds tx index (Sebastian Falbesoner)

Pull request description:

  This PR adds missing test coverage for the `getblocktxn` message handler, in the case that any of the contained indices is out-of-bounds:
  a05876619a/src/net_processing.cpp (L2180-L2183)

ACKs for top commit:
  dunxen:
    ACK 5a8c321

Tree-SHA512: 2743c2c6d8aed57b22f825aefd60ba3e670321b60625a42ea7248e7b0fc41c73e9a5945153567c02824ba3b5f0fce7f4125bffc974973fc608b6ffbe49e14b65
This commit is contained in:
MacroFake 2022-06-15 08:19:42 +02:00
commit a57492f65d
No known key found for this signature in database
GPG key ID: CE2B75697E69A548

View file

@ -606,6 +606,15 @@ class CompactBlocksTest(BitcoinTestFramework):
assert_equal(test_node.last_message["block"].block.sha256, int(block_hash, 16)) assert_equal(test_node.last_message["block"].block.sha256, int(block_hash, 16))
assert "blocktxn" not in test_node.last_message assert "blocktxn" not in test_node.last_message
# Request with out-of-bounds tx index results in disconnect
bad_peer = self.nodes[0].add_p2p_connection(TestP2PConn())
block_hash = node.getblockhash(chain_height)
block = from_hex(CBlock(), node.getblock(block_hash, False))
msg.block_txn_request = BlockTransactionsRequest(int(block_hash, 16), [len(block.vtx)])
with node.assert_debug_log(['getblocktxn with out-of-bounds tx indices']):
bad_peer.send_message(msg)
bad_peer.wait_for_disconnect()
def test_compactblocks_not_at_tip(self, test_node): def test_compactblocks_not_at_tip(self, test_node):
node = self.nodes[0] node = self.nodes[0]
# Test that requesting old compactblocks doesn't work. # Test that requesting old compactblocks doesn't work.