/src/fluent-bit/tests/internal/fuzzers/strp_fuzzer.c
Line | Count | Source |
1 | | #include <stdint.h> |
2 | | #include <string.h> |
3 | | #include <stdlib.h> |
4 | | #include <fluent-bit/flb_time.h> |
5 | | #include <fluent-bit/flb_parser.h> |
6 | | #include <msgpack.h> |
7 | | #include <fluent-bit/flb_info.h> |
8 | | #include <fluent-bit/flb_mem.h> |
9 | | #include <fluent-bit/flb_pack.h> |
10 | | #include <fluent-bit/flb_utils.h> |
11 | | #include <fluent-bit/flb_version.h> |
12 | | #include <fluent-bit/flb_strptime.h> |
13 | | |
14 | | #include "flb_fuzz_header.h" |
15 | | |
16 | | int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) |
17 | 1.07k | { |
18 | 1.07k | if (size < 40) { |
19 | 10 | return 0; |
20 | 10 | } |
21 | | |
22 | | /* Set fuzzer-malloc chance of failure */ |
23 | 1.06k | flb_malloc_mod = 25000; |
24 | 1.06k | flb_malloc_p = 0; |
25 | | |
26 | 1.06k | char *fmt = get_null_terminated(size - 30, &data, &size); |
27 | 1.06k | char *buf = get_null_terminated(size, &data, &size); |
28 | | |
29 | 1.06k | struct tm tt; |
30 | 1.06k | flb_strptime(buf, fmt, &tt); |
31 | | |
32 | 1.06k | flb_free(buf); |
33 | 1.06k | flb_free(fmt); |
34 | 1.06k | return 0; |
35 | 1.07k | } |