mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-05 14:06:27 -05:00
test: add BIP37 remote crash bug [CVE-2013-5700] test to p2p_filter.py
This commit is contained in:
parent
f0d6487e29
commit
0ed2d8e07d
3 changed files with 27 additions and 0 deletions
|
@ -11,6 +11,7 @@ from test_framework.messages import (
|
|||
MSG_FILTERED_BLOCK,
|
||||
msg_getdata,
|
||||
msg_filterload,
|
||||
msg_filteradd,
|
||||
msg_filterclear,
|
||||
)
|
||||
from test_framework.mininode import (
|
||||
|
@ -103,6 +104,10 @@ class FilterTest(BitcoinTestFramework):
|
|||
txid = self.nodes[0].sendtoaddress(self.nodes[0].getnewaddress(), 7)
|
||||
filter_node.wait_for_tx(txid)
|
||||
|
||||
self.log.info("Check that division-by-zero remote crash bug [CVE-2013-5700] is fixed")
|
||||
filter_node.send_and_ping(msg_filterload(data=b'', nHashFuncs=1))
|
||||
filter_node.send_and_ping(msg_filteradd(data=b'letstrytocrashthisnode'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
FilterTest().main()
|
||||
|
|
|
@ -1356,6 +1356,25 @@ class msg_filterload:
|
|||
self.data, self.nHashFuncs, self.nTweak, self.nFlags)
|
||||
|
||||
|
||||
class msg_filteradd:
|
||||
__slots__ = ("data")
|
||||
command = b"filteradd"
|
||||
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
|
||||
def deserialize(self, f):
|
||||
self.data = deser_string(f)
|
||||
|
||||
def serialize(self):
|
||||
r = b""
|
||||
r += ser_string(self.data)
|
||||
return r
|
||||
|
||||
def __repr__(self):
|
||||
return "msg_filteradd(data={})".format(self.data)
|
||||
|
||||
|
||||
class msg_filterclear:
|
||||
__slots__ = ()
|
||||
command = b"filterclear"
|
||||
|
|
|
@ -30,6 +30,7 @@ from test_framework.messages import (
|
|||
msg_blocktxn,
|
||||
msg_cmpctblock,
|
||||
msg_feefilter,
|
||||
msg_filteradd,
|
||||
msg_filterclear,
|
||||
msg_filterload,
|
||||
msg_getaddr,
|
||||
|
@ -65,6 +66,7 @@ MESSAGEMAP = {
|
|||
b"blocktxn": msg_blocktxn,
|
||||
b"cmpctblock": msg_cmpctblock,
|
||||
b"feefilter": msg_feefilter,
|
||||
b"filteradd": msg_filteradd,
|
||||
b"filterclear": msg_filterclear,
|
||||
b"filterload": msg_filterload,
|
||||
b"getaddr": msg_getaddr,
|
||||
|
@ -324,6 +326,7 @@ class P2PInterface(P2PConnection):
|
|||
def on_blocktxn(self, message): pass
|
||||
def on_cmpctblock(self, message): pass
|
||||
def on_feefilter(self, message): pass
|
||||
def on_filteradd(self, message): pass
|
||||
def on_filterclear(self, message): pass
|
||||
def on_filterload(self, message): pass
|
||||
def on_getaddr(self, message): pass
|
||||
|
|
Loading…
Add table
Reference in a new issue