Commit Graph

735 Commits

Author SHA1 Message Date
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 c866abd842.

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 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 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