forked from TrueCloudLab/neoneo-go
Merge pull request #1485 from nspcc-dev/fix-get-for-boltdb
storage: fix Get for BoltDB, fix #1482
This commit is contained in:
commit
138d310c85
1 changed files with 6 additions and 0 deletions
|
@ -61,6 +61,12 @@ func (s *BoltDBStore) Get(key []byte) (val []byte, err error) {
|
||||||
err = s.db.View(func(tx *bbolt.Tx) error {
|
err = s.db.View(func(tx *bbolt.Tx) error {
|
||||||
b := tx.Bucket(Bucket)
|
b := tx.Bucket(Bucket)
|
||||||
val = b.Get(key)
|
val = b.Get(key)
|
||||||
|
// Value from Get is only valid for the lifetime of transaction, #1482
|
||||||
|
if val != nil {
|
||||||
|
var valcopy = make([]byte, len(val))
|
||||||
|
copy(valcopy, val)
|
||||||
|
val = valcopy
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
if val == nil {
|
if val == nil {
|
||||||
|
|
Loading…
Reference in a new issue