trie: fix error in node decoding (#19111)
This commit is contained in:
parent
5b8ae7885e
commit
4f85c2b88b
@ -52,6 +52,9 @@ func hexToCompact(hex []byte) []byte {
|
||||
}
|
||||
|
||||
func compactToHex(compact []byte) []byte {
|
||||
if len(compact) == 0 {
|
||||
return compact
|
||||
}
|
||||
base := keybytesToHex(compact)
|
||||
// delete terminator flag
|
||||
if base[0] < 2 {
|
||||
|
@ -614,3 +614,16 @@ func updateString(trie *Trie, k, v string) {
|
||||
func deleteString(trie *Trie, k string) {
|
||||
trie.Delete([]byte(k))
|
||||
}
|
||||
|
||||
func TestDecodeNode(t *testing.T) {
|
||||
t.Parallel()
|
||||
var (
|
||||
hash = make([]byte, 20)
|
||||
elems = make([]byte, 20)
|
||||
)
|
||||
for i := 0; i < 5000000; i++ {
|
||||
rand.Read(hash)
|
||||
rand.Read(elems)
|
||||
decodeNode(hash, elems, 1)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user