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
cf862d0fed
implement AddItemToObject using AddItemToObjectCS
2017-02-15 21:46:24 +01:00
57d105d498
Merge pull request #108 from DaveGamble/cJSON_Invalid
...
Add new type cJSON_Invalid
2017-02-15 21:28:14 +01:00
5986edba1d
tests: Ensure that failed parsing returns invalid items
2017-02-15 21:25:52 +01:00
c6e1a281f9
tests: assertion macros
2017-02-15 21:25:52 +01:00
4f58695ed3
tests: extract common functionality to common.c
2017-02-15 21:25:51 +01:00
3facca4792
parse functions: Only set type after successful
...
This sets the type of an item only if parsing was successful.
This means that in case of failure, the item's type will remain to be
cJSON_Invalid.
2017-02-15 21:25:48 +01:00
cf48ea8175
New Type: cJSON_Invalid
...
This assigns the macro cJSON_Invalid to 0.
2017-02-15 21:19:38 +01:00
702fd95af3
fix #106 : potentially invalid free in cJSON_AddItemToObject
2017-02-15 20:45:23 +01:00
94117a5d23
Fix #105 , double free when parse_string fails
...
This fixes a double free that happens when calling cJSON_Delete on an
item that has been used by parse_string and it failed parsing the
string.
The double free happens, because parse_string frees an alias of
item->valuestring, but doesn't set item->valuestring to NULL.
2017-02-15 15:37:38 +01:00
c3bd4463be
cJSON_Utils: Guard use of %lu format string for size_t
2017-02-15 13:09:32 +01:00
9d7e8f1175
cJSON_Utils: Add casts to unsigned long, fix #103
...
Thanks @rrvirtual for the suggestion.
2017-02-09 15:09:06 +01:00
4047de4f6e
fix potential NULL dereferences found by coverity
2017-02-08 03:00:44 +01:00
49b9336558
Merge pull request #92 from DaveGamble/tests
...
Introduce the cunity testing framework
2017-02-07 21:50:07 +01:00
d04a2aeccf
README: Document additional CMake options
2017-02-07 21:44:37 +01:00
33e01ae087
Add support for Travis-CI
2017-02-07 21:35:38 +01:00
a09defec4c
CMake: Add ENABLE_SANITIZERS flag
...
Enabling this flag enables AddressSanitizer and
UndefinedBehaviorSanitizer
2017-02-07 21:35:21 +01:00
21c02cd3e5
CMake: Add Valgrind support
2017-02-07 21:35:21 +01:00
5a36b71a80
unity-tests: parse_value
2017-02-07 21:35:21 +01:00
9041570eba
unity-tests: parse_object
2017-02-07 21:35:21 +01:00
71b05fd4c2
unity-tests: parse_array
2017-02-07 21:35:21 +01:00
598b609c45
unity-tests: parse_string
2017-02-07 21:35:20 +01:00
b0e5209bde
unity-tests: test parse_hex4
2017-02-07 21:35:20 +01:00
7fd536d7e0
unity-tests: parse_number
2017-02-07 21:35:20 +01:00
be0951dfa4
Move parse tests from test.c -> parse_example.c
2017-02-07 21:35:20 +01:00
86be961bb5
test.c: remove file related code
2017-02-07 21:35:19 +01:00
bb60d6def5
cunity: parse_examples: test example files
...
Test parsing and printing example files
2017-02-07 21:35:19 +01:00
896e52255b
CMake: Build unity as library
2017-02-07 21:35:19 +01:00
12acc57967
unity: make it work with -Wconversion
2017-02-07 21:35:19 +01:00
d19f3ae890
Merge commit '6b9b57be226a505a9c9cdd9ed029f22495ce04ec' as 'tests/unity'
2017-02-07 21:30:57 +01:00
6b9b57be22
Squashed 'tests/unity/' content from commit 1782bab
...
git-subtree-dir: tests/unity
git-subtree-split: 1782bab0bacd349a45bc215ff91f082912cd7a64
2017-02-07 21:30:57 +01:00
e65ea3a45b
Merge pull request #101 from DaveGamble/simplify-correctness
...
Simplify some code and improve correctness
2017-02-07 21:29:11 +01:00
87f77274de
cJSON_SetNumberValue: Fix undefined double to int conversion
...
This might cause slight changes in behavior, but it shouldn't break
anything that is not already broken (for example the original macro
could either return a double, or an integer or whatever depending on if
object is NULL or not.)
2017-02-07 21:23:36 +01:00
dded751757
parse_string: remove useless first byte marks for utf8
2017-02-07 21:23:36 +01:00
d7b5545748
parse_hex4: deduplicate into a for loop
2017-02-07 21:23:36 +01:00
0747669972
parse_number: Switch to C library's strtod
...
Replaces the hand written floating point parser with the C library
implementation.
2017-02-07 21:23:36 +01:00
f09bdef15e
Revert "test.c: Fix buffer overrun found by coverity"
...
This reverts commit c866abd842
.
The length of this buffer was intentional. This looks like a false
positive.
2017-02-07 21:22:40 +01:00
7119a16b5f
Merge pull request #100 from DaveGamble/goto-fail
...
Use goto fail for error handling and fix some memory leaks on the way
2017-02-07 21:13:51 +01:00
cc514583cc
cJSON_Duplicate: goto fail error handling
...
Simplify error handling using goto fail and improve some names.
2017-02-07 20:59:55 +01:00
021b174ee1
parse_object: goto fail error handling
...
Makes the control flow easier to reason about and fixes a few potential
memory leaks.
2017-02-07 20:59:55 +01:00
99cd9af7d5
parse_array: goto fail error handling
...
Makes the control flow easier to reason about and fixes a few potential
memory leaks.
2017-02-07 20:59:55 +01:00
8656386c4f
parse_string: goto fail error handling
...
Makes the control flow easier to reason about and fixes a few potential
memory leaks.
2017-02-07 20:59:55 +01:00
c866abd842
test.c: Fix buffer overrun found by coverity
2017-02-07 20:59:55 +01:00
1f5538f79d
CMake: Fix several problems with automatic flag detection
2017-02-07 20:56:54 +01:00
9ed906758e
fix null pointer dereferences found by coverity
2017-02-07 19:07:18 +01:00
2f712c7456
CMake: Fix compile flag detection on old CMake
2017-02-07 16:43:33 +01:00
d00ca18ac2
CMake: automatic detection of compiler flag compatibility
2017-02-07 14:51:29 +01:00
6cdb6894d4
Compiler flags: Add -fstack-protector-strong
2017-02-06 01:51:53 +01:00
ee0c920dff
fix: add break in UTF-16 handling
...
Introducing the switch defaults in an earlier commit made UTF-16 \u
sequence handling broken.
2017-02-04 01:54:56 +01:00
af6d5d3d7c
Add more consts to unsigned chars
2017-02-03 22:41:14 +01:00