Commit Graph

399 Commits

Author SHA1 Message Date
Max Bruckner f02f79ecbb cJSON_ParseWithOpts: Extract pasrse with internal_configuration
Also introduces a allow_data_after_json property in the internal
configuration.
2018-03-25 23:32:03 +02:00
Max Bruckner d4e81cfe57 cJSON_Delete: Extract delete_item with internal_configuration 2018-03-25 23:32:03 +02:00
Max Bruckner 7030dc7c5b Put buffer_size into internal_configuration 2018-03-25 23:32:03 +02:00
Max Bruckner 27977adc93 Put format into internal_configuration 2018-03-25 23:32:03 +02:00
Max Bruckner 677f0cb1bb Rename internal_hooks -> internal_configuration, cJSON_New_item -> create_item 2018-03-25 23:32:03 +02:00
Max Bruckner fd5281bdd8 cJSON: cjson_min: Wrap arguments in parentheses 2018-03-25 15:12:15 +02:00
Max Bruckner 1f4044a707 cJSON.c: Remove unused cast 2018-03-25 15:11:56 +02:00
Max Bruckner 08a2ad3c59 is_{nan,infinity}: Wrap macro arguments in parentheses 2018-03-25 14:25:46 +02:00
Max Bruckner b06fb10f94 cJSON.c: Remove unnecessary includes 2018-03-25 14:20:48 +02:00
Max Bruckner ce5f31ac47 Remove superfluous null checks in can_read/access_at_index macros 2018-03-25 13:01:49 +02:00
Max Bruckner 0715259635 cJSON_Compare: Performance improvement for objects
Check the size to prevent comparing objects equal if they are prefixes
of each other.
2018-03-25 13:01:10 +02:00
Max Bruckner f4cc4d7c63 parse_value: Check only first character at first
This should improve performance
2018-03-25 13:01:10 +02:00
Max Bruckner 952b1017ab print_number: Introduce fast path for integers.
Thanks @Tangerino for suggesting this optimisation.
2018-03-25 13:01:10 +02:00
Max Bruckner 0914640d79 Extract helper: double_to_saturated_integer 2018-03-25 13:01:10 +02:00
Max Bruckner 5ed383a0d1 is_nan and is_infinity macros 2018-03-25 13:01:06 +02:00
Max Bruckner b2bbc11d44 Fix #234: Different argument names between declaration and definition 2018-03-25 13:00:12 +02:00
Max Bruckner 06f4152008 print: Comment about why the buffer is reallocated 2018-03-25 13:00:12 +02:00
Max Bruckner 0e0c463491 Release version 1.7.5 2018-03-22 20:29:17 +01:00
Max Bruckner 5da9edc8b1 Release version 1.7.4 2018-03-02 19:57:36 +01:00
Max Bruckner 22a7d04fa0 add_item_to_object: Fix use-after-free when string is aliased
If the `string` property of the item that is added is an alias to the
`string` parameter of `add_item_to_object`, and `constant` is false,
`cJSON_strdup` would access the string after it has been freed.

Thanks @hhallen for reporting this in #248.
2018-03-02 19:49:55 +01:00
Max Bruckner a559eac472 Release version 1.7.3 2018-02-07 21:16:35 +01:00
Max Bruckner d514bb866e Fix #241, potential double free 2018-02-07 19:36:59 +01:00
Max Bruckner 27caa364b0 Release version 1.7.2 2018-02-06 11:38:41 +01:00
Max Bruckner b60b5d3744 Update version to 1.7.1 2018-01-09 21:59:42 +01:00
Max Bruckner 4d84acf926 print_number: fix Off-By-One error
Thanks @liuyunbin for reporting this in #230
2018-01-09 21:40:55 +01:00
Max Bruckner 28d4410f42 print: fix: realloc was allocating too much memory
Thanks @liuyunbin for reporting this in #230
2018-01-09 20:53:33 +01:00
Max Bruckner f33fa95f3d print: Fix default buffer size in printbuffer
Thanks @liuyunbin for reporting this in #230
2018-01-09 20:49:03 +01:00
Max Bruckner 13a2d337a8 Update version number to 1.7 2017-12-31 02:03:40 +01:00
Max Bruckner 5865faffa3 Convert cJSON_Add...ToObject macros into functions
These functions return the added object. Functions to add objects and
arrays have also been added.
2017-12-28 23:56:39 +01:00
Max Bruckner de729a1635 Extract add_item_to_object function that returns a boolean 2017-12-28 21:40:24 +01:00
Max Bruckner 55c597c719 add_item_to_array with boolean return value 2017-12-28 12:45:28 +01:00
Max Bruckner 11844dd5a6 Add cJSON_Create{Array,Object}Reference 2017-11-28 03:06:02 +01:00
Max Bruckner 1f543f0e28 cast_away_const: Generalize for void* 2017-11-28 02:05:02 +01:00
Max Bruckner eaa90a6b74 Add cJSON_CreateStringReference 2017-11-28 02:02:55 +01:00
Max Bruckner 440390a9a5 extract function cast_away_const_from_string 2017-11-28 01:54:21 +01:00
Max Bruckner b2afbd3c9f cJSON_GetStringValue 2017-11-15 18:47:49 +01:00
yangfl fa00278f66 Remove trailing space 2017-11-04 21:19:15 +08:00
Max Bruckner c083421f40 Release version 1.6.0 2017-10-08 23:36:41 +02:00
Max Bruckner 96c33e5abb ENABLE_LOCALES: Actually disable the include as well 2017-10-08 23:28:49 +02:00
Max Bruckner 97d7347a6e Merge branch 'develop' 2017-10-08 22:05:02 +02:00
casperinous 9b960fa870 Small indentation fix in order to follow the contribution rules. 2017-10-08 22:02:52 +03:00
casperinous 4f9e9dfc30 Fix for issue #202, regarding the lack of implementation of the localeconv method in some SDK's.
A macro named `ENABLE_LOCALES` was added and an option with the same name too in the CMakeLists.txt
2017-10-08 21:55:58 +03:00
Max Bruckner afd5d186b7 Release version 1.5.9 2017-09-08 13:54:24 +02:00
rmallins 629c354390 Rewrite test for cJSON_ParseWithOpts() to expect non-null error
pointer in error case and change code to match new expectations.
2017-09-08 01:22:10 +01:00
Max Bruckner 1925d1bbe5 Release version 1.5.8 2017-08-21 11:06:10 +02:00
Max Bruckner 88d66c5da9 Release version 1.5.7 2017-07-12 23:13:14 +02:00
Max Bruckner 954d61e5e7 Fix #189, ensure returns an invalid pointer
If realloc returns NULL, ensure didn't abort but returned
printbuffer.offset instead. If an attacker can control
printbuffer.offset and also make realloc fail at just the right moment,
this would make cJSON potentially write at an arbitrary memory address.
2017-07-12 23:02:31 +02:00
Max Bruckner 5baa77f86c cJSON_Parse{,WithOpts}: Skip UTF-8 (Byte Order Marks) 2017-07-03 22:28:04 +02:00
Max Bruckner 7a2615c231 Fix: Check if __GNUCC__ is defined
This has been detected via MSVC's Warning C4668
2017-06-28 17:28:51 +02:00
Max Bruckner ac368e9dfb MSVC: Fix warning about assignment in condition 2017-06-28 17:28:51 +02:00