copy actor object when iterating over actors
This is a pretty big footgun.
This commit is contained in:
parent
5314ba8c6d
commit
ab070f2ebe
@ -385,6 +385,7 @@ func (st *StateTree) MutateActor(addr address.Address, f func(*types.Actor) erro
|
|||||||
func (st *StateTree) ForEach(f func(address.Address, *types.Actor) error) error {
|
func (st *StateTree) ForEach(f func(address.Address, *types.Actor) error) error {
|
||||||
var act types.Actor
|
var act types.Actor
|
||||||
return st.root.ForEach(&act, func(k string) error {
|
return st.root.ForEach(&act, func(k string) error {
|
||||||
|
act := act // copy
|
||||||
addr, err := address.NewFromBytes([]byte(k))
|
addr, err := address.NewFromBytes([]byte(k))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return xerrors.Errorf("invalid address (%x) found in state tree key: %w", []byte(k), err)
|
return xerrors.Errorf("invalid address (%x) found in state tree key: %w", []byte(k), err)
|
||||||
|
Loading…
Reference in New Issue
Block a user