aboutsummaryrefslogtreecommitdiffstats
path: root/librecrypt_test_supported.c
diff options
context:
space:
mode:
authorMattias Andrée <m@maandree.se>2026-05-16 02:11:29 +0200
committerMattias Andrée <m@maandree.se>2026-05-16 02:11:29 +0200
commit8e7bfadb3eb9f43eb0b670b908b479325722fee5 (patch)
treee7f26f67cc4da2846e0ac3f8201e1e82de3c6112 /librecrypt_test_supported.c
parentm (diff)
downloadlibrecrypt-8e7bfadb3eb9f43eb0b670b908b479325722fee5.tar.gz
librecrypt-8e7bfadb3eb9f43eb0b670b908b479325722fee5.tar.bz2
librecrypt-8e7bfadb3eb9f43eb0b670b908b479325722fee5.tar.xz
Add WITH_LIBAR2SIMPLIFIED=false + work on fuzzing code
Signed-off-by: Mattias Andrée <m@maandree.se>
Diffstat (limited to 'librecrypt_test_supported.c')
-rw-r--r--librecrypt_test_supported.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/librecrypt_test_supported.c b/librecrypt_test_supported.c
index db9f302..66ee4fb 100644
--- a/librecrypt_test_supported.c
+++ b/librecrypt_test_supported.c
@@ -41,6 +41,7 @@ librecrypt_test_supported(const char *phrase, size_t len, int text, const char *
#else
+# ifndef FUZZ
#define NSA "$~no~such~algorithm~$"
@@ -77,4 +78,41 @@ main(void)
}
+# else
+
+
+extern volatile int discarded_return_value;
+volatile int discarded_return_value;
+
+int
+LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ const void *phrase;
+ size_t len;
+ int text;
+ char *settings;
+
+ if (size < 4u)
+ return 0;
+
+ text = (int)data[0u] & 1;
+ len = (size_t)data[1u];
+ if (len > size - 2u)
+ return 0;
+ phrase = &data[2u];
+ data = &data[2u + len];
+ size -= 2u + len;
+ settings = malloc(size + 1u);
+ assert(settings);
+ memcpy(settings, data, size);
+ settings[size] = '\0';
+
+ discarded_return_value = librecrypt_test_supported(phrase, len, text, settings);
+
+ free(settings);
+ return 0;
+}
+
+
+# endif
#endif