core/vm: avoid escape to heap

This commit is contained in:
cuiweixie 2026-01-06 22:41:33 +08:00
parent de5ea2ffd8
commit 385d90686c

View file

@ -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