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
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
Max Bruckner
698dc528f4
parse_object: improve variable names + const correctness
2017-02-16 21:02:25 +01:00
Max Bruckner
3dc6339025
parse_array: improve variable names + const correctness
2017-02-16 20:08:59 +01:00
Max Bruckner
15592c50f6
parse_number: improve variable names + const correctness
2017-02-16 20:02:18 +01:00
Max Bruckner
efb5e1bc93
parse_string: Improve const correctnes of pointers
2017-02-16 20:00:12 +01:00
Max Bruckner
ace5047782
parse_string: reduce mental burden when reading the code
...
This restructures parse_string in a way, that you need to keep less
state in your head to understand the code.
This is achieved by:
* only changing the input pointer (current position) at a few places
(not all throughout)
* splitting out the UTF16 handling into a separate function
* renaming the variables so you know what they do without additional
context
2017-02-16 19:49:03 +01:00
Max Bruckner
03f23738bb
parse_object: simplify to one do-while loop
2017-02-16 19:49:02 +01:00
Max Bruckner
24dbf29360
parse_array: simplify to one do-while loop
2017-02-16 19:49:02 +01:00
Max Bruckner
b6974ecbc9
Makefile: Update compiler options
2017-02-16 12:52:00 +01:00
Max Bruckner
12b2daccf3
parse_{object,array}: set child only after parsing
...
This only attaches the parsed linked lists to the items passed to
parse_object and parse_array.
2017-02-16 01:03:43 +01:00
Max Bruckner
f8d0c47bdb
Remove unnecessary assignment and silence clang analyzer
2017-02-16 00:31:57 +01:00
Max Bruckner
9f6fa94c91
ensure: replace pow2gt with multiplication by two
...
This replaces the bit fiddling involved with calculating a new buffer
size by just multiplying the required length by two, paving the way to a
complete switch to size_t at a later point in time.
2017-02-16 00:23:38 +01:00
Max Bruckner
123bb1af7b
cJSON: prevent incompatible C and header versions
...
Introduces a preprocessor directive that aborts the compilation if the
version numbers in the header don't match with the numbers in the c
file.
2017-02-15 23:21:50 +01:00
Max Bruckner
cf862d0fed
implement AddItemToObject using AddItemToObjectCS
2017-02-15 21:46:24 +01:00
Max Bruckner
57d105d498
Merge pull request #108 from DaveGamble/cJSON_Invalid
...
Add new type cJSON_Invalid
2017-02-15 21:28:14 +01:00
Max Bruckner
5986edba1d
tests: Ensure that failed parsing returns invalid items
2017-02-15 21:25:52 +01:00