/src/janet/test/fuzzers/fuzz_dobytes.c
Line | Count | Source |
1 | | #include <stdint.h> |
2 | | #include <janet.h> |
3 | | |
4 | | /* Disable leak sanitizer */ |
5 | 0 | int __lsan_is_turned_off(void) { |
6 | 0 | return 1; |
7 | 0 | } |
8 | | |
9 | 10.3k | int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { |
10 | | |
11 | | /* init Janet */ |
12 | 10.3k | janet_init(); |
13 | | |
14 | | /* fuzz the compile + bytecode VM path (parse, compile, run) in src/core/compile.c and src/core/vm.c */ |
15 | 10.3k | JanetTable *env = janet_core_env(NULL); |
16 | 10.3k | JanetTryState tstate; |
17 | 10.3k | if (janet_try(&tstate) == JANET_SIGNAL_OK) { |
18 | 10.3k | Janet out; |
19 | 10.3k | janet_dobytes(env, data, (int32_t) size, "<fuzz>", &out); |
20 | 10.3k | } |
21 | 10.3k | janet_restore(&tstate); |
22 | | |
23 | | /* cleanup Janet */ |
24 | 10.3k | janet_deinit(); |
25 | | |
26 | 10.3k | return 0; |
27 | 10.3k | } |