trie: correct off-by-one in embedded node size validation

This commit is contained in:
sashass1315 2026-02-09 18:55:55 +02:00 committed by GitHub
parent c9b7ae422c
commit 0dd931bae2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -225,7 +225,7 @@ func decodeRef(buf []byte) (node, []byte, error) {
case kind == rlp.List: case kind == rlp.List:
// 'embedded' node reference. The encoding must be smaller // 'embedded' node reference. The encoding must be smaller
// than a hash in order to be valid. // than a hash in order to be valid.
if size := len(buf) - len(rest); size > hashLen { if size := len(buf) - len(rest); size >= hashLen {
err := fmt.Errorf("oversized embedded node (size is %d bytes, want size < %d)", size, hashLen) err := fmt.Errorf("oversized embedded node (size is %d bytes, want size < %d)", size, hashLen)
return nil, buf, err return nil, buf, err
} }