You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

json_array_fuzzer.cc 1.2 kB

123456789101112131415161718192021222324252627
  1. #include <fuzzer/FuzzedDataProvider.h>
  2. #include "json.h"
  3. extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
  4. FuzzedDataProvider fdp(data, size);
  5. json_object *my_array = json_object_new_array();
  6. for (int i = 0; i < 3; ++i) {
  7. json_object *jso = json_tokener_parse(fdp.ConsumeRandomLengthString(10).c_str());
  8. if (jso == NULL) {
  9. continue;
  10. }
  11. json_object_array_add(my_array, jso);
  12. }
  13. json_object_array_insert_idx(my_array, fdp.ConsumeIntegralInRange<size_t>(0, 10),
  14. json_object_new_int(fdp.ConsumeIntegral<int>()));
  15. json_object_array_get_idx(my_array, fdp.ConsumeIntegralInRange<size_t>(0, 10));
  16. json_object_array_put_idx(my_array, fdp.ConsumeIntegralInRange<size_t>(0, 10),
  17. json_object_new_int(fdp.ConsumeIntegral<int>()));
  18. json_object_array_del_idx(my_array, fdp.ConsumeIntegralInRange<size_t>(0, 10),
  19. fdp.ConsumeIntegralInRange<size_t>(0, 10));
  20. json_object_array_shrink(my_array, fdp.ConsumeIntegralInRange<size_t>(0, 10));
  21. json_object_array_sort(my_array, [](const void *a, const void *b) { return 0; });
  22. json_object_array_length(my_array);
  23. json_object_put(my_array);
  24. return 0;
  25. }