Commit Graph

735 Commits

Author SHA1 Message Date
Mike Jerris
039b1cc653 add CJSON_PUBLIC macro to public functions to support visibility and dllimport/dllexport 2017-02-27 13:47:06 -06:00
Max Bruckner
c0ff1fef9b Release 1.3.1 2017-02-26 22:04:22 +01:00
Max Bruckner
2302f4f0b2 Merge pull request #120 from DaveGamble/typecheck-functions
Typecheck functions
2017-02-26 22:00:28 +01:00
Max Bruckner
c45dc12fd7 Tests for typecheck functions 2017-02-26 21:54:01 +01:00
Max Bruckner
ed8dc53699 cJSON_Utils: Use new typecheck functions 2017-02-26 21:26:34 +01:00
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
29f312dd69 Merge pull request #118 from mjerris/parser
prevent read beyond end of buffer when string ends with malformed utf
2017-02-26 13:12:26 +01:00
Mike Jerris
72e6e23523 prevent read beyond end of buffer when string ends with malformed utf 2017-02-23 08:59:25 -06: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