From 4b29502098535f0aa00a46fe5692a2d49bb5ebce Mon Sep 17 00:00:00 2001 From: Matt Morehouse Date: Tue, 17 Oct 2023 11:47:44 -0500 Subject: [PATCH] fuzz: check invoice signatures There may be bugs in signature validation, so we should fuzz that too. --- tests/fuzz/fuzz-bolt11.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/tests/fuzz/fuzz-bolt11.c b/tests/fuzz/fuzz-bolt11.c index f6c483f8908e..264af5b3a6b1 100644 --- a/tests/fuzz/fuzz-bolt11.c +++ b/tests/fuzz/fuzz-bolt11.c @@ -18,11 +18,7 @@ size_t LLVMFuzzerMutate(uint8_t *data, size_t size, size_t max_size); size_t LLVMFuzzerCustomMutator(uint8_t *fuzz_data, size_t size, size_t max_size, unsigned int seed); -void init(int *argc, char ***argv) -{ - chainparams = chainparams_for_network("bitcoin"); - common_setup("fuzzer"); -} +void init(int *argc, char ***argv) { common_setup("fuzzer"); } // Encodes a dummy bolt11 invoice into `fuzz_data` and returns the size of the // encoded string. @@ -115,13 +111,9 @@ size_t LLVMFuzzerCustomMutator(uint8_t *fuzz_data, size_t size, size_t max_size, void run(const uint8_t *data, size_t size) { char *invoice_str = to_string(tmpctx, data, size); - - struct sha256 hash; - const u5 *sigdata; - bool have_n = false; char *fail; - bolt11_decode_nosig(tmpctx, invoice_str, NULL, NULL, chainparams, &hash, - &sigdata, &have_n, &fail); + + bolt11_decode(tmpctx, invoice_str, NULL, NULL, NULL, &fail); clean_tmpctx(); }