strictasm_diff_ossfuzz: crashing test case causes `Interpreted traces for optimized and unoptimized code differ.`
- 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
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