forked from TrueCloudLab/neoneo-go
storage: fix Get for BoltDB, fix #1482
This commit is contained in:
parent
c72ecd1be4
commit
0f39da19d0
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