| /* SPDX-License-Identifier: LGPL-2.1+ */ |
| |
| #include "alloc-util.h" |
| #include "fileio.h" |
| #include "fd-util.h" |
| #include "fuzz.h" |
| #include "json.h" |
| |
| int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { |
| _cleanup_free_ char *out = NULL; /* out should be freed after g */ |
| size_t out_size; |
| _cleanup_fclose_ FILE *f = NULL, *g = NULL; |
| _cleanup_(json_variant_unrefp) JsonVariant *v = NULL; |
| |
| if (size == 0) |
| return 0; |
| |
| f = fmemopen_unlocked((char*) data, size, "re"); |
| assert_se(f); |
| |
| if (json_parse_file(f, NULL, &v, NULL, NULL) < 0) |
| return 0; |
| |
| g = open_memstream_unlocked(&out, &out_size); |
| assert_se(g); |
| |
| json_variant_dump(v, 0, g, NULL); |
| json_variant_dump(v, JSON_FORMAT_PRETTY|JSON_FORMAT_COLOR|JSON_FORMAT_SOURCE, g, NULL); |
| |
| return 0; |
| } |