diff options
author | Péter Szilágyi <peterke@gmail.com> | 2016-10-05 21:31:48 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2016-10-05 21:34:07 +0800 |
commit | e482b5694faece927a29289f88d7a87b1ce1fbd1 (patch) | |
tree | eedbb105046f909300744dcd89993ff97a6bb5fa /eth/handler_test.go | |
parent | a7cc3248fe3ecb3439d0b69f5823f294b2854886 (diff) | |
download | dexon-e482b5694faece927a29289f88d7a87b1ce1fbd1.tar.gz dexon-e482b5694faece927a29289f88d7a87b1ce1fbd1.tar.zst dexon-e482b5694faece927a29289f88d7a87b1ce1fbd1.zip |
eth: monitor malicious header retrieval requests
Diffstat (limited to 'eth/handler_test.go')
-rw-r--r-- | eth/handler_test.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/eth/handler_test.go b/eth/handler_test.go index 91989cb8f..f0f18d0a6 100644 --- a/eth/handler_test.go +++ b/eth/handler_test.go @@ -17,6 +17,7 @@ package eth import ( + "math" "math/big" "math/rand" "testing" @@ -173,6 +174,20 @@ func testGetBlockHeaders(t *testing.T, protocol int) { pm.blockchain.GetBlockByNumber(0).Hash(), }, }, + // Check a corner case where skipping overflow loops back into the chain start + { + &getBlockHeadersData{Origin: hashOrNumber{Hash: pm.blockchain.GetBlockByNumber(3).Hash()}, Amount: 2, Reverse: false, Skip: math.MaxUint64 - 1}, + []common.Hash{ + pm.blockchain.GetBlockByNumber(3).Hash(), + }, + }, + // Check a corner case where skipping overflow loops back to the same header + { + &getBlockHeadersData{Origin: hashOrNumber{Hash: pm.blockchain.GetBlockByNumber(1).Hash()}, Amount: 2, Reverse: false, Skip: math.MaxUint64}, + []common.Hash{ + pm.blockchain.GetBlockByNumber(1).Hash(), + }, + }, // Check that non existing headers aren't returned { &getBlockHeadersData{Origin: hashOrNumber{Hash: unknown}, Amount: 1}, |