From 78072cec214248f43ab3ea3e19d62f4ec5fef3ca Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 11:06:38 +0200 Subject: [PATCH] fix: rootKey empty check by len equals 0 (backport #801) (#809) Co-authored-by: mmsqe Co-authored-by: Julien Robert --- CHANGELOG.md | 3 +-- iterator.go | 2 +- iterator_test.go | 4 ++++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d25acee6..45fb4c725 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,13 +13,12 @@ ### Bug Fixes - [#773](https://github.com/cosmos/iavl/pull/773) Fix memory leak in `Import`. +- [#801](https://github.com/cosmos/iavl/pull/801) Fix rootKey empty check by len equals 0. ### Breaking Changes - [#735](https://github.com/cosmos/iavl/pull/735) Pass logger to `NodeDB`, `MutableTree` and `ImmutableTree` - - [#646](https://github.com/cosmos/iavl/pull/646) Remove the `orphans` from the storage - - [#777](https://github.com/cosmos/iavl/pull/777) Don't return errors from ImmutableTree.Hash, NewImmutableTree, NewImmutableTreeWIthOpts ### API Changes diff --git a/iterator.go b/iterator.go index 205519931..131a2bdda 100644 --- a/iterator.go +++ b/iterator.go @@ -269,7 +269,7 @@ type NodeIterator struct { // NewNodeIterator returns a new NodeIterator to traverse the tree of the root node. func NewNodeIterator(rootKey []byte, ndb *nodeDB) (*NodeIterator, error) { - if rootKey == nil { + if len(rootKey) == 0 { return &NodeIterator{ nodesToVisit: []*Node{}, ndb: ndb, diff --git a/iterator_test.go b/iterator_test.go index 8d27a7232..f7a7ed0f4 100644 --- a/iterator_test.go +++ b/iterator_test.go @@ -366,4 +366,8 @@ func TestNodeIterator_WithEmptyRoot(t *testing.T) { itr, err := NewNodeIterator(nil, newNodeDB(dbm.NewMemDB(), 0, nil, log.NewNopLogger())) require.NoError(t, err) require.False(t, itr.Valid()) + + itr, err = NewNodeIterator([]byte{}, newNodeDB(dbm.NewMemDB(), 0, nil, log.NewNopLogger())) + require.NoError(t, err) + require.False(t, itr.Valid()) }