discovery/gossiper: copy bolt key to prevent panic
Corrects an instance that holds a reference to a boltdb byte slice after returning from the transaction. This can cause panics under certain conditions, which is avoided by creating a copy of the key.
This commit is contained in:
parent
2e6e2a06c1
commit
54c4b09f87
@ -796,7 +796,13 @@ func (d *AuthenticatedGossiper) resendAnnounceSignatures() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
t := msgTuple{peer, msg, k}
|
|
||||||
|
// Make a copy of the database key corresponding to
|
||||||
|
// these AnnounceSignatures.
|
||||||
|
dbKey := make([]byte, len(k))
|
||||||
|
copy(dbKey, k)
|
||||||
|
|
||||||
|
t := msgTuple{peer, msg, dbKey}
|
||||||
|
|
||||||
// Add the message to the slice, such that we can
|
// Add the message to the slice, such that we can
|
||||||
// resend it after the database transaction is over.
|
// resend it after the database transaction is over.
|
||||||
|
Loading…
Reference in New Issue
Block a user