Open TheCrott opened 3 years ago
Curious, I can't reproduce this. I can tell where the implicit cast is, and I can tell how this could happen, but it doesn't seem to be tripping ubsan here
❯ env ASAN_OPTIONS=symbolize=1,allocator_may_return_null=1 ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer Fuzzers/FuzzASN1 serenity_asn1_ubsan
INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 612235559
INFO: Loaded 4 modules (60645 inline 8-bit counters): 35565 [0x7f819a9631d0, 0x7f819a96bcbd), 11993 [0x7f819ab9dca0, 0x7f819aba0b79), 12893 [0x7f819adb6890, 0x7f819adb9aed), 194 [0x55a040911f78, 0x55a04091203a),
INFO: Loaded 4 PC tables (60645 PCs): 35565 [0x7f819a96bcc0,0x7f819a9f6b90), 11993 [0x7f819aba0b80,0x7f819abcf910), 12893 [0x7f819adb9af0,0x7f819adec0c0), 194 [0x55a040912040,0x55a040912c60),
Fuzzers/FuzzASN1: Running 1 inputs 1 time(s) each.
Running: serenity_asn1_ubsan
Executed serenity_asn1_ubsan in 0 ms
***
*** NOTE: fuzzing was not performed, you have only
*** executed the target code on a fixed set of inputs.
***
That binary is definitely built with UBSAN on (nm FuzzASN1 | grep -c ubsan
shows 118 symbols), so I'm not sure what's happening here.
For further info, this is clang 12.0.1 on x86_64.
Curious, I can't reproduce this. I can tell where the implicit cast is, and I can tell how this could happen, but it doesn't seem to be tripping ubsan here
❯ env ASAN_OPTIONS=symbolize=1,allocator_may_return_null=1 ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer Fuzzers/FuzzASN1 serenity_asn1_ubsan INFO: Running with entropic power schedule (0xFF, 100). INFO: Seed: 612235559 INFO: Loaded 4 modules (60645 inline 8-bit counters): 35565 [0x7f819a9631d0, 0x7f819a96bcbd), 11993 [0x7f819ab9dca0, 0x7f819aba0b79), 12893 [0x7f819adb6890, 0x7f819adb9aed), 194 [0x55a040911f78, 0x55a04091203a), INFO: Loaded 4 PC tables (60645 PCs): 35565 [0x7f819a96bcc0,0x7f819a9f6b90), 11993 [0x7f819aba0b80,0x7f819abcf910), 12893 [0x7f819adb9af0,0x7f819adec0c0), 194 [0x55a040912040,0x55a040912c60), Fuzzers/FuzzASN1: Running 1 inputs 1 time(s) each. Running: serenity_asn1_ubsan Executed serenity_asn1_ubsan in 0 ms *** *** NOTE: fuzzing was not performed, you have only *** executed the target code on a fixed set of inputs. ***
That binary is definitely built with UBSAN on (
nm FuzzASN1 | grep -c ubsan
shows 118 symbols), so I'm not sure what's happening here.For further info, this is clang 12.0.1 on x86_64.
I'm using clang 12.0.1 too on ubuntu 20.04
OOh I forgot to mention that I found this bug after setting optimization in Meta/Lagom/CMakeLists.txt
to -O0
and I add integer sanitizer to the cmakelist
When I fuzz with Fuzzasn1 I found an assertion failure. Here is the crash file
serenity_asn1_ubsan.zip
Here is the stack trace