Max Bruckner
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
Max Bruckner
d19f3ae890
Merge commit '6b9b57be226a505a9c9cdd9ed029f22495ce04ec' as 'tests/unity'
2017-02-07 21:30:57 +01:00
Max Bruckner
e65ea3a45b
Merge pull request #101 from DaveGamble/simplify-correctness
...
Simplify some code and improve correctness
2017-02-07 21:29:11 +01:00
Max Bruckner
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
Max Bruckner
dded751757
parse_string: remove useless first byte marks for utf8
2017-02-07 21:23:36 +01:00
Max Bruckner
d7b5545748
parse_hex4: deduplicate into a for loop
2017-02-07 21:23:36 +01:00
Max Bruckner
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
Max Bruckner
f09bdef15e
Revert "test.c: Fix buffer overrun found by coverity"
...
This reverts commit c866abd84259acacf79524921a0ca6634fd71ddd.
The length of this buffer was intentional. This looks like a false
positive.
2017-02-07 21:22:40 +01:00
Max Bruckner
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
Max Bruckner
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
Max Bruckner
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
Max Bruckner
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
Max Bruckner
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
Max Bruckner
c866abd842
test.c: Fix buffer overrun found by coverity
2017-02-07 20:59:55 +01:00
Max Bruckner
1f5538f79d
CMake: Fix several problems with automatic flag detection
2017-02-07 20:56:54 +01:00
Max Bruckner
9ed906758e
fix null pointer dereferences found by coverity
2017-02-07 19:07:18 +01:00
Max Bruckner
2f712c7456
CMake: Fix compile flag detection on old CMake
2017-02-07 16:43:33 +01:00
Max Bruckner
d00ca18ac2
CMake: automatic detection of compiler flag compatibility
2017-02-07 14:51:29 +01:00
Max Bruckner
6cdb6894d4
Compiler flags: Add -fstack-protector-strong
2017-02-06 01:51:53 +01:00
Max Bruckner
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
Max Bruckner
af6d5d3d7c
Add more consts to unsigned chars
2017-02-03 22:41:14 +01:00
Max Bruckner
cf9d57d56c
Fix incorrect return
2017-02-03 20:34:37 +01:00
Max Bruckner
4d95639001
Merge pull request #98 from DaveGamble/compiler-options
...
More compiler flags + correctness improvements
2017-02-03 19:43:11 +01:00
Max Bruckner
3d3bfc6a4d
Compiler flag -Wconversion
...
Makes type conversions explicit, if they alter a value
2017-02-03 18:36:13 +01:00
Max Bruckner
41e2837df1
Fix potentially undefined behavior when filling valueint
...
If the number is bigger or smaller than the biggest or smallest integer,
the behavior would be undefined.
This commit defines it as saturation behavior.
2017-02-03 18:36:13 +01:00
Max Bruckner
ecd5678527
Change all internal sizes to size_t
2017-02-03 18:36:12 +01:00
Max Bruckner
28b9ba4334
Change all internal strings to unsigned char*
2017-02-03 15:59:00 +01:00
Max Bruckner
b182ced1d6
Compiler flag -Wswitch-default + add defaults
2017-02-03 12:21:36 +01:00
Max Bruckner
fe18403935
Compiler flag -Wundef + fix incorrect macro
2017-02-03 12:14:50 +01:00
Max Bruckner
981f59b163
Release Version 1.2.1
v1.2.1
2017-01-30 19:36:36 +01:00
Max Bruckner
e4eadb9a81
Merge pull request #97 from DaveGamble/fix96-null-pointer-dereference
...
Fix potential null pointer dereference in cJSON_Utils
Fixes #96
2017-01-30 19:34:33 +01:00
Max Bruckner
ff0681e4fd
Utils: PatchDetach: Check for invalid patch string
2017-01-30 19:30:16 +01:00
Max Bruckner
a2309a509d
Utils: InplaceDecodePointerString: Check for NULL
2017-01-30 19:29:52 +01:00
Max Bruckner
c49ffbfba8
cJSON_Version: returns a version string
...
This is useful to programmatically find out the version of cJSON that
has been used (useful in case of scripting language bindings for
example).
2017-01-12 20:37:29 +01:00
Max Bruckner
e7533aa6f0
Put version information in the header
...
This is important so that it is always known which version of the
library is used, especially if the C and Header files have just been
copy pasted to another code base.
2017-01-12 20:35:13 +01:00
Max Bruckner
de8eaaba89
Release version 1.2.0
v1.2.0
2017-01-09 12:25:31 +01:00
Max Bruckner
b2da44d6cb
Merge pull request #90 from DaveGamble/cJSON_Raw
...
Add support for raw JSON
2017-01-09 12:22:00 +01:00
Max Bruckner
f6998a6a34
Contributors: Add Jiri Zouhar
2017-01-09 12:02:21 +01:00
Max Bruckner
e3e0b5150b
cJSON_CreateRaw: Format fixes
2017-01-05 21:33:52 +01:00
Max Bruckner
1df987a170
cJSON_strdup: Check for NULL string
2017-01-05 21:31:17 +01:00
Max Bruckner
ddadb44a67
cJSON_Raw: Additional checks in print_value
2017-01-05 21:30:37 +01:00
Max Bruckner
9ef44fc0b6
Remove C++ comment in header
2017-01-05 21:12:10 +01:00
Max Bruckner
8c58e62597
Merge remote-tracking branch 'loigu/master' into cJSON_Raw
2017-01-05 21:07:08 +01:00
Max Bruckner
8893e39712
gitignore: ignore *.orig
2017-01-04 20:40:34 +01:00
Max Bruckner
3d6ae11340
Make cJSON C++ compatible
2016-12-28 12:33:20 +01:00
Max Bruckner
a1f2600883
Contributors: Add Romain Porte
2016-12-28 12:29:03 +01:00
Max Bruckner
fcc85bdfbc
Gitignore: Add Makefile output
2016-12-28 12:23:56 +01:00
Max Bruckner
7d08a3518a
Merge pull request #88 from MicroJoe/fix-readme-tests
...
Fix bad CMake argument in README
2016-12-28 12:20:37 +01:00
Romain Porte
cc486a0354
Fix bad CMake argument in README
2016-12-27 11:32:41 +01:00
Max Bruckner
fcc89c4bb2
Move increment out of loop condition fixes #85
2016-12-15 11:12:42 +01:00
Max Bruckner
a0431e226f
Merge pull request #83 from gatzka/feature/cast_qual_v3
...
Introduce compiler check if const is casted away.
2016-12-08 21:59:32 +07:00
Stephan Gatzka
89edfb6741
Warn if cast removes a type qualifier like const.
2016-12-08 13:21:30 +01:00
Stephan
e69db83de5
Temporarily disable warning when const is cast away.
...
There was a long running discussion here
https://github.com/DaveGamble/cJSON/pull/80 how to provide const
correctness for users of cJSON.
To avoid breaking changes for users of cJSON v1 it was decided to
disable this warning.
pragma was tested with gcc 5.4.0/6.2.1 and clang 3.8/3.9.
2016-12-08 13:21:18 +01:00
Max Bruckner
5310da351d
contributors: Add Alper Akcan
v1.1.0
2016-12-06 09:01:12 +07:00
Max Bruckner
68196f5b14
Release version 1.1.0
2016-12-06 08:56:23 +07:00
Max Bruckner
d992cd46e6
test: Handle cJSON_PrintPreallocated return values correctly
2016-12-06 08:47:44 +07:00
Max Bruckner
84b48121bb
header: explain PrintPreallocated return value
2016-12-06 08:46:48 +07:00
Max Bruckner
f10e2f884a
test: exit on malloc failure
2016-12-06 08:41:51 +07:00
Max Bruckner
eeb6d237b6
Merge pull request #81 from alperakcan/master
...
fix memory leak in cJSON_Duplicate
2016-12-06 08:36:47 +07:00
Alper Akcan
5b4420298f
fix memory leak in cJSON_Duplicate
2016-12-05 14:23:04 +03:00
Max Bruckner
e1eb06fae0
cJSON.h warn about write access to constants ( #80 )
...
Add a comment that warns about potential write access to constant memory
locations after using cJSON_AddItemToObjectCS.
2016-11-30 22:14:16 +07:00
Max Bruckner
6aefa45056
Merge pull request #79 from gatzka/fix/test
...
Make print_preallocated static.
2016-11-29 08:19:33 +07:00
Stephan Gatzka
345d57e9e5
Make print_preallocated static.
...
Otherwise compilation failes due to missing prototypes.
2016-11-28 20:21:38 +01:00
Max Bruckner
3da18a2df9
contributors: Add Kyle Chisholm
2016-11-29 00:01:21 +07:00
Max Bruckner
bf17703012
Merge branch 'print_preallocated'
2016-11-28 23:08:25 +07:00
Max Bruckner
6622c54f18
Handle out of memory when printing string
2016-11-28 23:06:38 +07:00
Kyle Chisholm
8df4cd46eb
more concise return
2016-11-28 22:59:55 +07:00
Kyle Chisholm
3917fb5255
use print_preallocated function to test printout of JSON
2016-11-28 22:59:55 +07:00
Kyle Chisholm
99896d879c
function to print and compare to preallocated buffer
2016-11-28 22:59:55 +07:00
Kyle Chisholm
4d1dcaa160
check print_value return
2016-11-28 22:59:54 +07:00
Kyle Chisholm
de93d76d0b
changed to cJSON_PrintPreallocated, added flag in printbuffer
2016-11-28 22:59:53 +07:00
Kyle Chisholm
602c241a0b
fixed "make test" on Mac (clang)
2016-11-28 22:53:36 +07:00
Kyle Chisholm
23dafa4739
added Print function call for pre-allocated buffer
2016-11-28 22:53:33 +07:00
Max Bruckner
59cf4112d2
Merge pull request #78 from gatzka/feature/gcc_check_strict_overflow_v2
...
gcc check strict overflow v2
2016-11-28 22:29:03 +07:00
Stephan
5cfda2292f
Warn if compiler optimizes based on asumption signed overflow does not occur.
...
This switch is only active when making a release build.
2016-11-28 09:12:17 +01:00
Stephan
038b04d80a
Take out len from condition check.
...
Otherwise, the check is just undefined behaviour. gcc even takes out
this check because len can never be zero if len does not wrap around.
Found with -Wstrict-overflow=2
2016-11-28 09:11:14 +01:00
Max Bruckner
624bc85143
contributors: add Stephan Gatzka
2016-11-28 01:03:04 +07:00
Max Bruckner
1f0ad823c9
Merge pull request #75 from gatzka/feature/enhance_gcc_checks_v2
...
Enhance gcc checks v2
2016-11-28 00:58:45 +07:00
Stephan Gatzka
29b6643bab
Warn about missing prototypes.
...
This switch warns about missing prototypes. It does not warn if
functions are declared static. So this switch encourages the usage of
static whenever possible. This enables the compiler to perform inlining.
2016-11-27 18:22:12 +01:00
Stephan Gatzka
a8e1368697
Make function static when possible.
...
This is a prerequisite to later enable -Wmissing-prototypes.
2016-11-27 18:20:58 +01:00
Stephan Gatzka
bea0be48b6
Perform additional format checks.
2016-11-27 18:20:41 +01:00
Stephan Gatzka
91d11cd050
Warn if casting a pointer increases alignment of target.
2016-11-27 18:19:52 +01:00
Stephan Gatzka
9591ecddbe
Warn about variables initialized by themselves.
2016-11-27 18:19:07 +01:00
Stephan Gatzka
1568015de6
Warn about shadowing variables and functions.
2016-11-27 18:18:00 +01:00
Stephan Gatzka
7ed067e680
Rename some variables to avoid shadowing.
2016-11-27 18:16:28 +01:00
Max Bruckner
4703f01cf4
Make/CMake: Fix use of compiler flags
...
CMake: Option was not enabled by default as intended.
Makefile: Flags were not passed when building the tests
2016-11-26 22:09:20 +07:00
Max Bruckner
d0a9f46888
Release v1.0.2
v1.0.2
2016-11-25 08:22:41 +07:00
Max Bruckner
23b269d5f9
Rename bool -> cjbool, fix #71
2016-11-25 08:19:18 +07:00
Max Bruckner
11fd27ade7
Change version to 1.0.1
v1.0.1
2016-11-20 01:08:54 +07:00
Max Bruckner
65ac0a1a2b
cJSON_Utils tests: fix formatting
2016-11-19 17:50:01 +07:00
Max Bruckner
679004914f
Define a boolean type
...
This is not changing the behavior of the code, but it is improving the
readability and helps to make the intention clearer.
One thing to take care: 'true' should never be compared against.
2016-11-19 17:29:22 +07:00
Max Bruckner
b88da9b0de
Initialize all variables
2016-11-19 17:29:21 +07:00
Max Bruckner
a5ff796c20
Replace 0 with more expressive NULL or '\0'
2016-11-19 17:28:14 +07:00
Max Bruckner
d47339e274
cJSON_Utils: Fix comparing of cJSON_ types
...
When comparing the type, it has to be masked with 0xFF because of
cJSON_IsConst and cJSON_IsReference.
2016-11-18 22:52:52 +07:00
Max Bruckner
aafb64a1c5
Merge pull request #66 from DaveGamble/v1
...
Release version 1.0.0
v1.0.0
2016-11-17 08:19:08 +07:00
Max Bruckner
3a2151d267
README: Document ENABLE_CUSTOM_COMPILER_FLAGS
2016-11-15 20:23:47 +07:00
Max Bruckner
f2cb5e4dd4
CMake: ENABLE_CUSTOM_COMPILER_FLAGS option
2016-11-15 20:21:57 +07:00
Max Bruckner
46a3a102d5
CMake: Fix indentation
2016-11-15 20:21:30 +07:00
Max Bruckner
1f3b95e2b1
README: Compiles on FreeBSD
2016-11-15 20:19:02 +07:00
Max Bruckner
706636fb20
Replace -ansi with -std=c89 for better compatibility
2016-11-15 20:03:11 +07:00