mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-22 15:59:26 +00:00
core/vm: avoid escape to heap (#33537)
This commit is contained in:
parent
710008450f
commit
957a3602d9
1 changed files with 3 additions and 3 deletions
|
|
@ -299,11 +299,11 @@ func (c *ecrecover) Run(input []byte) ([]byte, error) {
|
||||||
}
|
}
|
||||||
// We must make sure not to modify the 'input', so placing the 'v' along with
|
// We must make sure not to modify the 'input', so placing the 'v' along with
|
||||||
// the signature needs to be done on a new allocation
|
// the signature needs to be done on a new allocation
|
||||||
sig := make([]byte, 65)
|
var sig [65]byte
|
||||||
copy(sig, input[64:128])
|
copy(sig[:], input[64:128])
|
||||||
sig[64] = v
|
sig[64] = v
|
||||||
// v needs to be at the end for libsecp256k1
|
// v needs to be at the end for libsecp256k1
|
||||||
pubKey, err := crypto.Ecrecover(input[:32], sig)
|
pubKey, err := crypto.Ecrecover(input[:32], sig[:])
|
||||||
// make sure the public key is a valid one
|
// make sure the public key is a valid one
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue