diff --git a/contracts/utils/Memory.sol b/contracts/utils/Memory.sol index bd21666b1d5..fd53a58de5d 100644 --- a/contracts/utils/Memory.sol +++ b/contracts/utils/Memory.sol @@ -114,10 +114,11 @@ library Memory { /// @dev Returns true if the two slices contain the same data. function equal(Slice a, Slice b) internal pure returns (bool result) { - Memory.Pointer ptrA = _pointer(a); - Memory.Pointer ptrB = _pointer(b); uint256 lenA = length(a); uint256 lenB = length(b); + if (lenA != lenB) return false; + Memory.Pointer ptrA = _pointer(a); + Memory.Pointer ptrB = _pointer(b); assembly ("memory-safe") { result := eq(keccak256(ptrA, lenA), keccak256(ptrB, lenB)) }