diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index be210ae52..aac1e6542 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -21,4 +21,6 @@ program](https://hackerone.com/tendermint). ### BUG FIXES: +- [rpc] [#\4319] Check BlockMeta is not nil in Blocks & BlockByHash + diff --git a/rpc/core/blocks.go b/rpc/core/blocks.go index ed3c4257b..777981b06 100644 --- a/rpc/core/blocks.go +++ b/rpc/core/blocks.go @@ -76,8 +76,11 @@ func Block(ctx *rpctypes.Context, heightPtr *int64) (*ctypes.ResultBlock, error) return nil, err } - blockMeta := blockStore.LoadBlockMeta(height) block := blockStore.LoadBlock(height) + blockMeta := blockStore.LoadBlockMeta(height) + if blockMeta == nil { + return &ctypes.ResultBlock{BlockID: types.BlockID{}, Block: block}, nil + } return &ctypes.ResultBlock{BlockID: blockMeta.BlockID, Block: block}, nil } @@ -88,6 +91,9 @@ func BlockByHash(ctx *rpctypes.Context, hash []byte) (*ctypes.ResultBlock, error height := block.Height blockMeta := blockStore.LoadBlockMeta(height) + if blockMeta == nil { + return &ctypes.ResultBlock{BlockID: types.BlockID{}, Block: block}, nil + } return &ctypes.ResultBlock{BlockID: blockMeta.BlockID, Block: block}, nil }