diff options
author | Bojie Wu <bojie@dexon.org> | 2018-10-09 13:28:45 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 13:49:55 +0800 |
commit | afb51ec1fb001544c3005a0e7e323f1e123c8138 (patch) | |
tree | 5ada9177348839c83bf82940a4efb26b10d03aa6 /dex | |
parent | 624c4a952de8f4406ade329e620650c809fa88d6 (diff) | |
download | dexon-afb51ec1fb001544c3005a0e7e323f1e123c8138.tar dexon-afb51ec1fb001544c3005a0e7e323f1e123c8138.tar.gz dexon-afb51ec1fb001544c3005a0e7e323f1e123c8138.tar.bz2 dexon-afb51ec1fb001544c3005a0e7e323f1e123c8138.tar.lz dexon-afb51ec1fb001544c3005a0e7e323f1e123c8138.tar.xz dexon-afb51ec1fb001544c3005a0e7e323f1e123c8138.tar.zst dexon-afb51ec1fb001544c3005a0e7e323f1e123c8138.zip |
app: fix nil pointer issue
Diffstat (limited to 'dex')
-rw-r--r-- | dex/app.go | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/dex/app.go b/dex/app.go index 7730ba22f..b924ab620 100644 --- a/dex/app.go +++ b/dex/app.go @@ -129,14 +129,15 @@ func (d *DexconApp) PreparePayload(position coreTypes.Position) (payload []byte, // set state to the pending height var latestState *state.StateDB - if d.lastPendingHeight == 0 { + lastPendingBlock := d.blockchain.GetPendingBlockByHeight(d.lastPendingHeight) + if d.lastPendingHeight == 0 || lastPendingBlock == nil { latestState, err = d.blockchain.State() if err != nil { log.Error("Get current state", "error", err) return nil, fmt.Errorf("get current state error %v", err) } } else { - latestState, err = d.blockchain.StateAt(d.blockchain.GetPendingBlockByHeight(d.lastPendingHeight).Root()) + latestState, err = d.blockchain.StateAt(lastPendingBlock.Root()) if err != nil { log.Error("Get pending state", "error", err) return nil, fmt.Errorf("get pending state error: %v", err) @@ -286,14 +287,15 @@ func (d *DexconApp) VerifyBlock(block *coreTypes.Block) coreTypes.BlockVerifySta // set state to the pending height var latestState *state.StateDB - if d.lastPendingHeight == 0 { + lastPendingBlock := d.blockchain.GetPendingBlockByHeight(d.lastPendingHeight) + if d.lastPendingHeight == 0 || lastPendingBlock == nil { latestState, err = d.blockchain.State() if err != nil { log.Error("Get current state", "error", err) return coreTypes.VerifyInvalidBlock } } else { - latestState, err = d.blockchain.StateAt(d.blockchain.GetPendingBlockByHeight(d.lastPendingHeight).Root()) + latestState, err = d.blockchain.StateAt(lastPendingBlock.Root()) if err != nil { log.Error("Get pending state", "error", err) return coreTypes.VerifyInvalidBlock |