From 69fa571f8dd7a8bca0b4432c0f8f17eb574db784 Mon Sep 17 00:00:00 2001 From: ledgerwatch <akhounov@gmail.com> Date: Thu, 18 Nov 2021 14:05:20 +0000 Subject: [PATCH] Fix for eth_getLogs with zero fromBlock and toBlock (#2989) --- cmd/rpcdaemon/commands/eth_receipts.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/cmd/rpcdaemon/commands/eth_receipts.go b/cmd/rpcdaemon/commands/eth_receipts.go index 504adbae18..e246cc01ae 100644 --- a/cmd/rpcdaemon/commands/eth_receipts.go +++ b/cmd/rpcdaemon/commands/eth_receipts.go @@ -91,14 +91,25 @@ func (api *APIImpl) GetLogs(ctx context.Context, crit filters.FilterCriteria) ([ } begin = 0 - if crit.FromBlock != nil && crit.FromBlock.Sign() > 0 { - begin = crit.FromBlock.Uint64() + if crit.FromBlock != nil { + if crit.FromBlock.Sign() >= 0 { + begin = crit.FromBlock.Uint64() + } else { + return nil, fmt.Errorf("negative value for FromBlock: %v", crit.FromBlock) + } } end = latest - if crit.ToBlock != nil && crit.ToBlock.Sign() > 0 { - end = crit.ToBlock.Uint64() + if crit.ToBlock != nil { + if crit.ToBlock.Sign() >= 0 { + end = crit.ToBlock.Uint64() + } else { + return nil, fmt.Errorf("negative value for ToBlock: %v", crit.ToBlock) + } } } + if end < begin { + return nil, fmt.Errorf("end (%d) < begin (%d)", end, begin) + } blockNumbers := roaring.New() blockNumbers.AddRange(begin, end+1) // [min,max) -- GitLab