From c9ed13a433271ecd1b01203b2d85fb668dde85ed Mon Sep 17 00:00:00 2001 From: tesseract <146037313+DoTheBestToGetTheBest@users.noreply.github.com> Date: Tue, 30 Jan 2024 14:20:51 -0800 Subject: [PATCH] add checks --- blast-geth/beacon/merkle/merkle.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/blast-geth/beacon/merkle/merkle.go b/blast-geth/beacon/merkle/merkle.go index 30896f9b..21a79b20 100644 --- a/blast-geth/beacon/merkle/merkle.go +++ b/blast-geth/beacon/merkle/merkle.go @@ -42,6 +42,16 @@ func (m *Value) UnmarshalJSON(input []byte) error { // VerifyProof verifies a Merkle proof branch for a single value in a // binary Merkle tree (index is a generalized tree index). func VerifyProof(root common.Hash, index uint64, branch Values, value Value) error { + // Check for empty branch + if len(branch) == 0 { + return errors.New("empty branch provided") + } + + // Validate index range + if index >= (1 << uint(len(branch))) { + return errors.New("index out of range for provided branch length") + } + hasher := sha256.New() for _, sibling := range branch { hasher.Reset()