[#1007] metabase: Copy BoltDB value returned by IsSmall
According to BoltDB documentation bucket `value is only valid for the life of the transaction`. Make `DB.IsSmall` copy value slice in order to prevent potential memory corruptions (e.g. `runtime.stringtobyteslice` cast). Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
c383fc6929
commit
f9bcb6f5e3
1 changed files with 2 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
||||||
package meta
|
package meta
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/util/slice"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobovnicza"
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobovnicza"
|
||||||
objectSDK "github.com/nspcc-dev/neofs-sdk-go/object"
|
objectSDK "github.com/nspcc-dev/neofs-sdk-go/object"
|
||||||
"go.etcd.io/bbolt"
|
"go.etcd.io/bbolt"
|
||||||
|
@ -69,5 +70,5 @@ func (db *DB) isSmall(tx *bbolt.Tx, addr *objectSDK.Address) (*blobovnicza.ID, e
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return blobovnicza.NewIDFromBytes(blobovniczaID), nil
|
return blobovnicza.NewIDFromBytes(slice.Copy(blobovniczaID)), nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue