From 8329f783b27e0f78ba157c159fc6e9d9472f9795 Mon Sep 17 00:00:00 2001 From: Henrique Santos Date: Mon, 8 Dec 2025 21:55:50 -0300 Subject: [PATCH] fix: improve leaf index validation --- .github/actions/setup-tools/action.yml | 2 +- cartesi-rollups/contracts/src/Merkle.sol | 2 +- prt/contracts/src/tournament/libs/Match.sol | 5 +---- test/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/actions/setup-tools/action.yml b/.github/actions/setup-tools/action.yml index 973d64fd..030fb1a0 100644 --- a/.github/actions/setup-tools/action.yml +++ b/.github/actions/setup-tools/action.yml @@ -12,7 +12,7 @@ inputs: foundry-version: description: 'Foundry version to install' required: false - default: 'v1.4.3' + default: 'v1.5.0' setup-qemu: description: 'Whether to setup QEMU for riscv support' required: false diff --git a/cartesi-rollups/contracts/src/Merkle.sol b/cartesi-rollups/contracts/src/Merkle.sol index af161b0c..23462035 100644 --- a/cartesi-rollups/contracts/src/Merkle.sol +++ b/cartesi-rollups/contracts/src/Merkle.sol @@ -142,7 +142,7 @@ library Merkle { /// @dev See `MerkleConstants` for leaf size. function getHashOfLeafAtIndex(bytes calldata data, uint256 leafIndex) internal pure returns (bytes32) { uint256 start = leafIndex << MerkleConstants.LOG2_LEAF_SIZE; - if (start < data.length) { + if (start < data.length && (start >> MerkleConstants.LOG2_LEAF_SIZE) == leafIndex) { /// forge-lint: disable-next-line(asm-keccak256) return keccak256(abi.encode(bytes32(data[start:]))); } else { diff --git a/prt/contracts/src/tournament/libs/Match.sol b/prt/contracts/src/tournament/libs/Match.sol index 6a4defc4..3da7eff4 100644 --- a/prt/contracts/src/tournament/libs/Match.sol +++ b/prt/contracts/src/tournament/libs/Match.sol @@ -204,10 +204,7 @@ library Match { return args.toCycle(state.runningLeafPosition); } - function getDivergence( - State memory state, - Commitment.Arguments memory args - ) + function getDivergence(State memory state, Commitment.Arguments memory args) internal pure returns ( diff --git a/test/Dockerfile b/test/Dockerfile index 64bfbf8d..72bb202a 100644 --- a/test/Dockerfile +++ b/test/Dockerfile @@ -8,7 +8,7 @@ RUN <