Skip to content

Instantly share code, notes, and snippets.

@bshastry
Created March 1, 2024 08:41
Show Gist options
  • Save bshastry/ef5a1e4d1d8a73cc2cc94b029c63d9de to your computer and use it in GitHub Desktop.
Save bshastry/ef5a1e4d1d8a73cc2cc94b029c63d9de to your computer and use it in GitHub Desktop.
EVM trace for out of gas
INFO: found LLVMFuzzerCustomMutator (0x64f5d0). Disabling -len_control by default.
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 1979826077
INFO: Loaded 1 modules (404663 inline 8-bit counters): 404663 [0x2a9eb70, 0x2b01827),
INFO: Loaded 1 PC tables (404663 PCs): 404663 [0x2b01828,0x312e398),
./solc_mutator_ossfuzz: Running 1 inputs 1 time(s) each.
Running: crash-5e4272982726d507f4720ed8c158601c692d35a6
No library names found in the input.
Setting Name: language
Setting Value: yul
Setting Name: seed
Setting Value: 344883238
Setting Name: yul-optimizations
Setting Value: V:
hasValidLanguage: yes
hasSeed: yes
hasYulOptimizations: yes
Valid settings.
Optimizer sequence: V:
First run Yul optimizer: disabled
Second run Yul optimizer: enabled
Yul source
{
let al0 := verbatim_1i_1o(hex"31", 8)
function af0(ai0, ai1, ai2) -> ao0
{
let al1, al2, al3, al4, al5, al6, al7, al8, al9, al10, al11 := verbatim_10i_11o(hex"89", eq(verbatim_2i_1o(hex"10", ai1, 544), lt(192, 384)), af0(create2(196, 384, 193, 992), byte(832, 288), exp(256, 960)), call(gas(), 7, 247, 320, 24, 384, 135), byte(tload(320), delegatecall(gas(), 6, 320, 173, 192, 163)), mload(224), byte(mload(128), or(448, 832)), blobbasefee(), sload(160), shr(mload(128), eq(480, 128)), ai2)
let al12 := verbatim_1i_1o(hex"40", gt(verbatim_0i_1o(hex"64ddeb13295d"), verbatim_0i_1o(hex"7641c62b293953bb6d76d01a758b807b442ced6cd35d82d9")))
{
}
let al13 := af0(mload(256), create2(226, 352, 99, tload(288)), create(176, 320, 98))
sstore(992, or(basefee(), mload(320)))
}
tstore(sload(288), gt(shl(352, 1024), or(128, 32)))
{
}
let al14, al15, al16, al17, al18, al19, al20, al21, al22, al23, al24, al25, al26 := verbatim_13i_13o(hex"9B", create2(214, 384, 68, blobhash(143)), shl(blobbasefee(), keccak256(224, 175)), verbatim_1i_1o(hex"54", al0), or(verbatim_0i_1o(hex"70033551cfc33d9eb834b490085d296e538d"), exp(512, 256)), mload(320), af0(delegatecall(gas(), 4, 128, 50, 224, 157), exp(992, 480), eq(352, 928)), al0, keccak256(224, 126), shl(or(864, 320), al0), mload(288), blobhash(21), selfbalance(), al0)
let al27 := mload(128)
let al28, al29, al30, al31, al32, al33 := verbatim_6i_6o(hex"94", create2(183, 256, 144, byte(1024, 640)), call(gas(), 5, 206, 384, 229, 128, 65), lt(lt(608, 768), gt(64, 160)), blobhash(46), tload(160), eq(blobbasefee(), eq(224, 64)))
pop(tload(192))
}
Assembled Yul code
6008316100d3565b5f8360806101e0146080511c60a0544a6103406101c0176080511a60e05160a360c060ad61014060065af46101405c1a6087610180601861014060f760075af16100686103c06101000a6101206103401a6103e060c161018060c4f5610007565b61018060c0106102208d1014897641c62b293953bb6d76d01a758b807b442ced6cd35d82d964ddeb13295d11406100b5606261014060b0f06101205c606361016060e2f561010051610007565b6101405148176103e055505050505050505050505050509392505050565b60206080176104006101601b11610120545d80476015496101205184610140610360171b607e60e0208661011f6103a0610160146101e06103e00a609d60e06032608060045af4610007565b610140516101006102000a70033551cfc33d9eb834b490085d296e538d178a5460af60e0204a1b608f49604461018060d6f59b608051604060e0144a1460a05c602e4960a060401161030061026010106041608060e561018060ce60055af16102806104001a609061010060b7f594505050505050505050505050505050505050505050
Gas left: 0
Assembled Yul code
600831610120545f905d610120515050607e60e020505f80609d60e06032608060045af45b5f608051506103c09050608051505060e0515060a360c060ad61014060065af4506087610180601861014060f760075af1505f806103e060c161018060c4f5602456
Gas left: 0
Trace are different
Trace of run #1
BALANCE 0000000000000000000000000000000000000000000000000000000000000000
CREATE VALUE 0000000000000000000000000000000000000000000000000000000000000000
CALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
Trace of run #2
BALANCE 0000000000000000000000000000000000000000000000000000000000000000
CREATE VALUE 0000000000000000000000000000000000000000000000000000000000000000
CALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
DELEGATECALL VALUE 0000000000000000000000000000000000000000000000000000000000000000
libc++abi: terminating with uncaught exception of type solidity::test::fuzzer::FuzzerException<solidity::test::fuzzer::FuzzerIssueErrorTag>: Yul runs diverged
==1312282== ERROR: libFuzzer: deadly signal
#0 0x4524c4 in __sanitizer_print_stack_trace /src/llvm-project/compiler-rt/lib/ubsan/ubsan_diag_standalone.cpp:31:3
#1 0x48bd48 in fuzzer::PrintStackTrace() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerUtil.cpp:210:5
#2 0x470a23 in fuzzer::Fuzzer::CrashCallback() /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:233:3
#3 0x7f13159af41f (/lib/x86_64-linux-gnu/libpthread.so.0+0x1441f) (BuildId: 0c044ba611aeeeaebb8374e660061f341ebc0bac)
#4 0x7f13157c700a in __libc_signal_restore_set /build/glibc-wuryBv/glibc-2.31/signal/../sysdeps/unix/sysv/linux/internal-signals.h:86:3
#5 0x7f13157c700a in raise /build/glibc-wuryBv/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:48:3
#6 0x7f13157a6858 in abort /build/glibc-wuryBv/glibc-2.31/stdlib/abort.c:79:7
#7 0x1825895 in abort_message crtstuff.c
#8 0x182e2ce in demangling_terminate_handler() cxa_default_handlers.cpp
#9 0x1825312 in std::__terminate(void (*)()) crtstuff.c
#10 0x18275b3 in __cxa_rethrow (/fuzz/solcfuzz/solc_mutator_ossfuzz+0x18275b3)
#11 0x6256d3 in (anonymous namespace)::runWithScopeGuard(std::__1::function<void ()>, std::__1::function<void ()>) /src/solidity/test/tools/ossfuzz/solc_ossfuzz.cpp:35:3
#12 0x62500b in LLVMFuzzerTestOneInput /src/solidity/test/tools/ossfuzz/solc_ossfuzz.cpp:52:2
#13 0x471fc3 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerLoop.cpp:611:15
#14 0x45d712 in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:324:6
#15 0x462fbc in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:860:9
#16 0x48c502 in main /src/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
#17 0x7f13157a8082 in __libc_start_main /build/glibc-wuryBv/glibc-2.31/csu/../csu/libc-start.c:308:16
#18 0x429d0d in _start (/fuzz/solcfuzz/solc_mutator_ossfuzz+0x429d0d)
NOTE: libFuzzer has rudimentary signal handlers.
Combine libFuzzer with AddressSanitizer or similar for better crash reports.
SUMMARY: libFuzzer: deadly signal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment