From 193d39d9b78a9e3c0c257b2e1e9f9dd4a7a13349 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Fri, 15 May 2026 20:53:25 +0200 Subject: Misc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- librecrypt_decompose_chain.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'librecrypt_decompose_chain.c') diff --git a/librecrypt_decompose_chain.c b/librecrypt_decompose_chain.c index 9db1d6c..aa69b85 100644 --- a/librecrypt_decompose_chain.c +++ b/librecrypt_decompose_chain.c @@ -7,6 +7,7 @@ extern inline size_t librecrypt_decompose_chain(char *hash, char **chain_out_arr #else +# ifndef FUZZ #define HASH_1 "a$b" @@ -182,4 +183,37 @@ main(void) } +# else + + +extern volatile size_t discarded_return_value; +volatile size_t discarded_return_value; + +int +LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + char **chain, *hash; + size_t chain_size; + if (!size) + return 0; + chain_size = (size_t)*data++; + size -= 1u; + if (chain_size) { + chain = malloc(chain_size * sizeof(*chain)); + assert(chain); + } else { + chain = NULL; + } + hash = malloc(size + 1u); + assert(hash); + memcpy(hash, data, size); + hash[size] = '\0'; + discarded_return_value = librecrypt_decompose_chain(hash, chain, chain_size); + free(hash); + free(chain); + return 0; +} + + +# endif #endif -- cgit v1.2.3-70-g09d2