/src/libucl/tests/fuzzers/ucl_msgpack_fuzzer.c
Line | Count | Source |
1 | | #include <stdio.h> |
2 | | #include <errno.h> |
3 | | #include <unistd.h> |
4 | | #include "ucl.h" |
5 | | |
6 | 1.39k | int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { |
7 | 1.39k | if (size < 3) { |
8 | 2 | return 0; |
9 | 2 | } |
10 | | |
11 | 1.39k | struct ucl_parser *parser = ucl_parser_new(UCL_PARSER_KEY_LOWERCASE); |
12 | 1.39k | if (parser == NULL) { |
13 | 0 | return 0; |
14 | 0 | } |
15 | | |
16 | 1.39k | if (ucl_parser_add_chunk_full(parser, (const unsigned char *)data, size, |
17 | 1.39k | 0, UCL_DUPLICATE_APPEND, UCL_PARSE_MSGPACK)) { |
18 | 233 | ucl_object_t *obj = ucl_parser_get_object(parser); |
19 | 233 | if (obj != NULL) { |
20 | 233 | ucl_object_unref(obj); |
21 | 233 | } |
22 | 233 | } |
23 | | |
24 | 1.39k | ucl_parser_free(parser); |
25 | 1.39k | return 0; |
26 | 1.39k | } |