argotorg / argotorg/solidity

strictasm_diff_ossfuzz: crashing test case causes `Interpreted traces for optimized and unoptimized code differ.`

Open
#16,071 0 comments 0 reactions 0 assignees View on GitHub
bug :bug:
Dominant language
C++
Stars
25.7k
Forks
6.2k
Avg merge
2d 19h
Merged PRs (30d)
29

Description

## Description

Hi! We found a crashing test case when testing with the `strictasm_diff_ossfuzz` fuzzing driver that reports `Interpreted traces for optimized and unoptimized code differ.`

## Steps to Reproduce

PoC:
```
{mstore(0, 7)
sstore(0, mload(0))
mstore(sub(0, 1), sub(0, 1))
sstore(1, mload(sub(6, 1)))
}
// ----
// Trace:
// Memory dump:
// 0: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff07
// FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0: 00000000000000000000000000000000000000000000000000000000000000ff
// Storage dump:
// 0000000000000000000000000000000000000000000000000000000000000000: 0000000000000000000000000000000000000000000000000000000000000007
// 0000000000000000000000000000000000000000000000000000000000000001: ffffffffffff{}}
```

Contributor guide

Open the contributing guide

Research direction

Start with the strictasm_diff_ossfuzz driver and run the supplied PoC, then compare the interpreted traces for optimized and unoptimized code. Trace the mismatch through the compiler's optimizer and interpreter paths; done means the driver no longer crashes or reports differing traces for this case.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, solidity
Domain
compilers, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.