Add bounds check on getSuccessorHeader and getAncestorHeader

This commit is contained in:
kdeme 2019-07-09 15:52:41 +02:00
parent 820989c7f5
commit f50d3f84f9
No known key found for this signature in database
GPG Key ID: 4E8DD21420AF43F5
1 changed files with 6 additions and 6 deletions

View File

@ -24,14 +24,14 @@ method getBestBlockHeader*(c: Chain): BlockHeader {.gcsafe.} =
c.db.getCanonicalHead()
method getSuccessorHeader*(c: Chain, h: BlockHeader, output: var BlockHeader, skip = 0'u): bool {.gcsafe.} =
let n = if skip > 0'u: h.blockNumber + 1 + skip.toBlockNumber
else: h.blockNumber + 1
result = c.db.getBlockHeader(n, output)
let offset = 1 + skip.toBlockNumber
if h.blockNumber <= (not 0.toBlockNumber) - offset:
result = c.db.getBlockHeader(h.blockNumber + offset, output)
method getAncestorHeader*(c: Chain, h: BlockHeader, output: var BlockHeader, skip = 0'u): bool {.gcsafe.} =
let n = if skip > 0'u: h.blockNumber - 1 - skip.toBlockNumber
else: h.blockNumber - 1
c.db.getBlockHeader(n, output)
let offset = 1 + skip.toBlockNumber
if h.blockNumber >= offset:
result = c.db.getBlockHeader(h.blockNumber - offset, output)
method getBlockBody*(c: Chain, blockHash: KeccakHash): BlockBodyRef =
result = nil