diff options
| author | Mattias Andrée <m@maandree.se> | 2026-05-15 20:53:25 +0200 |
|---|---|---|
| committer | Mattias Andrée <m@maandree.se> | 2026-05-15 20:53:25 +0200 |
| commit | 193d39d9b78a9e3c0c257b2e1e9f9dd4a7a13349 (patch) | |
| tree | c3b4eaf8df53babc7e37df4384d1be3be1cd9186 /librecrypt_decompose_chain.c | |
| parent | Fix some minor issues (diff) | |
| download | librecrypt-193d39d9b78a9e3c0c257b2e1e9f9dd4a7a13349.tar.gz librecrypt-193d39d9b78a9e3c0c257b2e1e9f9dd4a7a13349.tar.bz2 librecrypt-193d39d9b78a9e3c0c257b2e1e9f9dd4a7a13349.tar.xz | |
Misc
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to '')
| -rw-r--r-- | librecrypt_decompose_chain.c | 34 |
1 files changed, 34 insertions, 0 deletions
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 |
