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()) }