From 2299147176a915f1601fd7ef025e5723f790eefe Mon Sep 17 00:00:00 2001 From: Janos Guljas Date: Thu, 20 Dec 2018 15:34:31 +0100 Subject: [PATCH] swarm/shed: pass a new byte slice copy to index decode functions --- swarm/shed/index.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/swarm/shed/index.go b/swarm/shed/index.go index a1646e9f26..df88b1b62d 100644 --- a/swarm/shed/index.go +++ b/swarm/shed/index.go @@ -249,11 +249,13 @@ func (f Index) Iterate(fn IndexIterFunc, options *IterateOptions) (err error) { if !bytes.HasPrefix(key, prefix) { break } - keyItem, err := f.decodeKeyFunc(key) + // create a copy of key byte slice not to share leveldb underlaying slice array + keyItem, err := f.decodeKeyFunc(append([]byte(nil), key...)) if err != nil { return err } - valueItem, err := f.decodeValueFunc(keyItem, it.Value()) + // create a copy of value byte slice not to share leveldb underlaying slice array + valueItem, err := f.decodeValueFunc(keyItem, append([]byte(nil), it.Value()...)) if err != nil { return err }