core-lightning/tests/fuzz
Matt Morehouse 3192be5c23 fuzz: fix UBSan nullability error
The issue is that common_setup() wasn't called by the fuzz target,
leaving secp256k1_ctx as NULL.

UBSan error:

$ UBSAN_OPTIONS="print_stacktrace=1:halt_on_error=1" \
    ./fuzz-channel_id crash-1575b41ef09e62e4c09c165e6dc037a110b113f2

INFO: Running with entropic power schedule (0xFF, 100).
INFO: Seed: 1153355603
INFO: Loaded 1 modules   (25915 inline 8-bit counters): 25915 [0x563bae7ac3a8, 0x563bae7b28e3),
INFO: Loaded 1 PC tables (25915 PCs): 25915 [0x563bae7b28e8,0x563bae817c98),
./fuzz-channel_id: Running 1 inputs 1 time(s) each.
Running: crash-1575b41ef09e62e4c09c165e6dc037a110b113f2
bitcoin/pubkey.c:22:33: runtime error: null pointer passed as argument 1, which is declared to never be null
external/libwally-core/src/secp256k1/include/secp256k1.h:373:3: note: nonnull attribute specified here
    #0 0x563bae41e3db in pubkey_from_der bitcoin/pubkey.c:19:7
    #1 0x563bae4205e0 in fromwire_pubkey bitcoin/pubkey.c:111:7
    #2 0x563bae46437c in run tests/fuzz/fuzz-channel_id.c:42:3
    #3 0x563bae2f6016 in LLVMFuzzerTestOneInput tests/fuzz/libfuzz.c:23:2
    #4 0x563bae20a450 in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long)
    #5 0x563bae1f4c3f in fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long)
    #6 0x563bae1fa6e6 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long))
    #7 0x563bae223052 in main (tests/fuzz/fuzz-channel_id+0x181052) (BuildId: f7f56e14ffc06df54ab732d79ea922e773de1f25)
    #8 0x7fa7fa113082 in __libc_start_main
    #9 0x563bae1efbdd in _start

SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior bitcoin/pubkey.c:22:33 in
2023-03-23 13:34:24 +10:30
..
fuzz-addr.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
fuzz-amount.c cleanup: remove unneeded includes in C files. 2021-09-17 09:43:22 +09:30
fuzz-base32-64.c cleanup: remove unneeded includes in C files. 2021-09-17 09:43:22 +09:30
fuzz-bech32.c fuzz: avoid buffer overflow in bech32 target 2023-03-23 13:28:28 +10:30
fuzz-bigsize.c cleanup: remove unneeded includes in C files. 2021-09-17 09:43:22 +09:30
fuzz-bip32.c cleanup: remove unneeded includes in C files. 2021-09-17 09:43:22 +09:30
fuzz-channel_id.c fuzz: fix UBSan nullability error 2023-03-23 13:34:24 +10:30
fuzz-close_tx.c fuzz: fix fuzzing compilation. 2022-07-25 08:08:32 -07:00
fuzz-descriptor_checksum.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
fuzz-hsm_encryption.c fuzz: fix fuzzing compilation. 2022-07-25 08:08:32 -07:00
fuzz-initial_channel.c fuzz: fix fuzzing compilation. 2022-07-25 08:08:32 -07:00
libfuzz.c check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
libfuzz.h check: make sure all files outside contrib/ include "config.h" first. 2021-12-06 10:05:39 +10:30
Makefile tests/fuzz: don't pull in JSON common at all. 2022-11-09 20:25:58 +10:30
run.py fuzz: add a runner Python script for fuzz targets 2020-10-21 19:34:39 +02:00