From 4fa6afad132704c699b351b7c2b05ec48057c629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Sat, 10 Oct 2020 15:44:22 +0200 Subject: [PATCH] Fix panic in wallet export when key is not found --- chain/wallet/wallet.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/chain/wallet/wallet.go b/chain/wallet/wallet.go index 3efbf8ab7f6..57e63625b0b 100644 --- a/chain/wallet/wallet.go +++ b/chain/wallet/wallet.go @@ -141,6 +141,9 @@ func (w *LocalWallet) WalletExport(ctx context.Context, addr address.Address) (* if err != nil { return nil, xerrors.Errorf("failed to find key to export: %w", err) } + if k == nil { + return nil, xerrors.Errorf("key not found") + } return &k.KeyInfo, nil } @@ -274,6 +277,9 @@ func (w *LocalWallet) WalletDelete(ctx context.Context, addr address.Address) er if err != nil { return xerrors.Errorf("failed to delete key %s : %w", addr, err) } + if k == nil { + return nil // already not there + } if err := w.keystore.Put(KTrashPrefix+k.Address.String(), k.KeyInfo); err != nil { return xerrors.Errorf("failed to mark key %s as trashed: %w", addr, err)