From b50cb26664ccd6c32a4499a86dee9e8eccf3d5ce Mon Sep 17 00:00:00 2001 From: Marko Date: Fri, 17 Jan 2020 18:32:31 +0100 Subject: [PATCH] rpc: check nil blockmeta (#4320) * rpc: check nil blockmeta - fixes #4319 - check if block meta is nil Signed-off-by: Marko Baricevic * add changelog entry --- CHANGELOG_PENDING.md | 2 ++ rpc/core/blocks.go | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) 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 }