Commit Graph
478 Commits
Author SHA1 Message Date
Max Bruckner c26d53f0d7 Helper function to check the type of an item
This is necessary, because you can get it wrong if you do it manually.
(when you forget the & 0xFF in the comparison)
2017-02-26 14:30:50 +01:00
Max Bruckner 501046247d fix clang-sanitizer warnings 2017-02-21 15:08:36 +01:00
Max Bruckner 68cd0d4a11 cJSON.c: Pass allocation functions through internal functions
This is the first step in removing the global allocator functions. Every
internal function now only accesses its locally available set of
allocators.
2017-02-21 14:50:49 +01:00
Max Bruckner 56b819bfbc tests: test cJSON_GetObjectItem and cJSON_GetObjectItemCaseSensitive 2017-02-21 11:17:08 +01:00
Max Bruckner 605422c60a cJSON: New function cJSON_GetObjectItemCaseSensitive 2017-02-21 11:17:08 +01:00
Max Bruckner cbbcc91498 tests: cJSON_ArrayForEach 2017-02-21 09:17:49 +01:00
Max Bruckner b47d0e34ca cJSON_ArrayForEach: Fix handling of NULL pointers 2017-02-21 09:17:34 +01:00
Max Bruckner bc12c69b54 Merge pull request #114 from DaveGamble/simplify-print
Simplify print functions
2017-02-20 23:09:06 +01:00
Max Bruckner 1d42c9bc60 print_object: simplify code 2017-02-20 23:07:24 +01:00
Max Bruckner b71db93e03 print_object: rename variables 2017-02-20 23:07:24 +01:00
Max Bruckner 6d5a7c8c40 print_array: simplify code 2017-02-20 23:07:24 +01:00
Max Bruckner 8c1ed3ab82 update: rename to update_offset and change offset directly 2017-02-20 23:07:24 +01:00
Max Bruckner f16dd7e028 print_array: rename variables 2017-02-20 23:07:24 +01:00
Max Bruckner 08770fc246 print_value: rename variables 2017-02-20 23:07:23 +01:00
Max Bruckner 0ca8587acc print_string_ptr: simplify code 2017-02-20 23:07:23 +01:00
Max Bruckner 88e38d042f tests: print_string: test if NULL is printed as empty string 2017-02-20 23:07:23 +01:00
Max Bruckner 6a746a230a print_string: Add more const 2017-02-20 23:07:23 +01:00
Max Bruckner 1e999352d3 print_string_ptr: rename variables 2017-02-20 23:07:23 +01:00
Max Bruckner 6815d96617 print_number: rename variables 2017-02-20 23:07:22 +01:00
Max Bruckner 61921498d0 print_number: remove special case for 0
Now that printbuffer is used for everything, it's not needed anymore.
2017-02-20 23:07:22 +01:00
Max Bruckner 4758d62fd4 Merge pull request #113 from DaveGamble/printbuffer-only
Always print with printbuffer
2017-02-20 23:06:58 +01:00
Max Bruckner 1bc1a9748a Merge pull request #112 from DaveGamble/print-tests
Add tests for print functions
2017-02-20 11:15:53 +01:00
Max Bruckner de36476092 tests: print_value 2017-02-20 11:11:02 +01:00
Max Bruckner 983a4cd286 tests: parse_objects: Fix name of test 2017-02-20 11:11:01 +01:00
Max Bruckner b6abef94ff tests: print_object 2017-02-20 11:11:01 +01:00
Max Bruckner 3d66766231 tests: print_array 2017-02-20 11:11:01 +01:00
Max Bruckner 924122904e tests: print_number 2017-02-20 11:11:01 +01:00
Max Bruckner 87691a86e5 cJSON_SetNumberValue: Fix compiler warning with -Waddress 2017-02-20 11:11:01 +01:00
Max Bruckner 8aa324fdc8 tests: print_string 2017-02-20 11:11:01 +01:00
Max Bruckner 3c4d309f62 ensure: Don't accept empty printbuffers anymore 2017-02-19 04:20:21 +01:00
Max Bruckner 9bf531ca05 Remove printing without buffer 2017-02-19 04:16:57 +01:00
Max Bruckner 80354bdb06 cJSON_Print: Use printbuffer 2017-02-19 04:03:02 +01:00
Max Bruckner fe2e0956ad Merge pull request #111 from DaveGamble/fuzzing
partial build system integration of the afl fuzzing tool
2017-02-19 02:44:28 +01:00
Max Bruckner cf71f3d627 fuzzing: script to prepare linux kernel for afl 2017-02-18 13:18:09 +01:00
Max Bruckner da551c753f fuzzing: Speed up afl using persistent mode (in proccess fuzzing) 2017-02-18 13:18:09 +01:00
Max Bruckner ae4681b787 fuzzing: use llvm source code instrumentation 2017-02-18 13:18:08 +01:00
Max Bruckner c5a09a32a9 fuzzing: Fuzz different print methods
This is achieved by encoding the type of function used in the first two
bytes.

First byte:
b: buffered

Second byte:
f: formatted
2017-02-18 13:18:08 +01:00
Max Bruckner 4785070ad3 fuzzing: Fuzz printing as well.
With one big limitation: It can only be fuzzed with what has been
parsed by the library beforehand.
2017-02-18 12:52:16 +01:00
Max Bruckner 0e0cd5bae5 CMake: Add ENABLE_FUZZING and "afl" target 2017-02-18 12:52:16 +01:00
Max Bruckner 44512f643e Merge pull request #110 from DaveGamble/ensure-improvements
ensure improvements
2017-02-18 12:18:18 +01:00
Max Bruckner 331c18d09a ensure: only memcopy what's necessary
We don't need to copy the entire printbuffer, only the part that is
used.
2017-02-18 12:07:17 +01:00
Max Bruckner 4fff92140e ensure: use realloc if possible 2017-02-18 12:07:17 +01:00
Max Bruckner fc1d4b07df ensure: if printbuffer is null: cJSON_malloc
This allowed for the removal of a lot of if (p) checks.
2017-02-18 11:35:59 +01:00
Max Bruckner bd073343fa rename skip -> skip_whitespace 2017-02-17 19:37:31 +01:00
Max Bruckner 7c722dca5f CMake: Add target "check" that builds and runs tests 2017-02-17 13:59:26 +01:00
Max Bruckner 4fce9cce86 Release version 1.3.0 v1.3.0 2017-02-17 01:42:02 +01:00
Max Bruckner 415962da34 Merge pull request #109 from DaveGamble/simplify-parse
Simplify parsing
2017-02-16 21:23:36 +01:00
Max Bruckner b41264d164 Remove uint8_t because it's not part of C89 2017-02-16 21:22:43 +01:00
Max Bruckner 0f271dcf63 parse_hex4: make input pointer const 2017-02-16 21:02:26 +01:00
Max Bruckner ead389aba2 parse_value: improve variable names + const correctness 2017-02-16 21:02:25 +01:00