Eric Hawicz
382f9462c2
Merge pull request #726 from leongross/fix/test-cmake3.1
...
fix cmake version for tests
2021-10-09 09:17:25 -04:00
Eric Hawicz
4fc44f32df
Merge pull request #722 from imaami/fix-json_tokener_new_ex-use-after-free
...
Fix use-after-free in json_tokener_new_ex()
2021-09-04 23:16:13 -04:00
Eric Hawicz
dc1ef7d566
Merge pull request #718 from Pawday/master
...
CMake create uninstall target if unix generator is used
2021-07-31 22:46:01 -04:00
Eric Haszlakiewicz
f61f1a7a91
Add workaround for Visual Studio not knowing about "inline".
2021-07-25 20:31:59 +00:00
Eric Haszlakiewicz
db6a6cc2b2
Switch the Travis build to use osx_image: xcode12.5, in an attempt to avoid timeouts with Homebrew.
2021-07-25 20:03:55 +00:00
Eric Haszlakiewicz
6a0df2609e
Merge some old work to include (some of) PR #464 into the current master branch.
2021-07-25 19:07:06 +00:00
Eric Haszlakiewicz
8c727e5ce1
Only define an "uninstall" target if it's not already defined (e.g. by projects that include json-c)
2021-07-25 15:11:11 +00:00
Eric Hawicz
be9671e48a
Merge pull request #714 from Hex052/clang-format_AfterCaseLabel
...
Add AfterCaseLabel to .clang-format
2021-07-05 18:18:06 -04:00
Eric Haszlakiewicz
75bf657cc2
If inttypes.h is present, use it, even on Windows.
2021-06-13 21:12:22 +00:00
Eric Haszlakiewicz
9ca50cf2f8
Issue #709 : adjust some include guards to be a bit more json-c specific.
2021-06-02 23:53:23 +00:00
Eric Hawicz
0b7e78c309
Merge pull request #706 from davidjmccann/master
...
Check __STDC_VERSION__ is defined before checking its value
2021-05-15 08:41:24 -04:00
Eric Hawicz
cd7109f767
Merge pull request #696 from ssrlive/master
...
To avoid target exe file export JSON functions.
2021-05-01 15:21:31 -04:00
Eric Hawicz
78e390a261
Merge pull request #701 from commodo/configurable-opts
...
[RFC] json_pointer: allow the feature to be disabled
2021-04-17 17:26:49 -04:00
Eric Hawicz
94909840be
Merge pull request #700 from Philosoph228/werror-fix
...
Fix unused variable for Win32 build in random_seed.c
2021-04-14 22:38:36 -04:00
Eric Haszlakiewicz
041cef434a
Add a DISABLE_EXTRA_LIBS option to skip using libbsd, per @neheb's request on issue #692/commit 0f61f692.
2021-02-15 20:19:56 +00:00
Eric Haszlakiewicz
f787810890
If arc4random is used, don't bother compiling in the other fallback methods since they'll never be used. Fixes PR#695 about unreachable code too.
2021-02-13 03:23:58 +00:00
Eric Hawicz
7c859c54e4
Merge pull request #694 from ihsinme/patch-1
...
fix invalid unsigned arithmetic.
2021-02-06 17:25:24 -05:00
Eric Haszlakiewicz
0f61f6921b
Iesue #692 : use arc4random() if it's available (in libc on BSD systems, and libbsd on Linux).
2021-01-13 01:57:25 +00:00
Eric Haszlakiewicz
69d650528d
Keep the doc directory in the nodoc release tarball, just exclude its contents.
2021-01-13 01:30:16 +00:00
Eric Hawicz
4754f47434
Merge pull request #674 from ploxiln/random_seed_err_continue
...
random_seed: on error, continue to next method
2021-01-12 20:22:54 -05:00
Eric Hawicz
1fcb9e476b
Merge pull request #689 from neheb/patch-1
...
fix compilation with clang
2020-12-18 21:30:14 -05:00
Eric Hawicz
df27756491
Merge pull request #667 from stoeckmann/regression
...
Fixed test1 regression.
2020-09-11 20:56:51 -04:00
Eric Hawicz
785a94b7a2
Merge pull request #665 from stoeckmann/tokener
...
Handle more allocation failures in json_tokener* functions
2020-08-24 09:51:41 -04:00
Eric Hawicz
eb08a92218
Merge pull request #660 from stoeckmann/arraylist
...
Validate size arguments in arraylist functions.
2020-08-24 09:51:18 -04:00
Eric Hawicz
b4e72c2655
Merge pull request #664 from stoeckmann/string
...
Limit strings at INT_MAX length
2020-08-23 16:43:31 -04:00
Eric Hawicz
f941931804
Merge pull request #663 from stoeckmann/strerror
...
Properly format errnos in _json_c_strerror
2020-08-23 16:38:21 -04:00
Eric Hawicz
1bc7a6b223
Merge pull request #662 from stoeckmann/random
...
Prevent signed overflow in get_time_seed
2020-08-23 16:34:40 -04:00
Eric Haszlakiewicz
2b439ea598
Fix json_object_get_boolean() doc for the object and array cases (always returns 0), and add those cases to the test_cast test.
...
See also issue #658 .
2020-08-17 14:57:21 +00:00
Eric Hawicz
cf30cba4ac
Merge pull request #657 from stoeckmann/getrandom
...
Use GRND_NONBLOCK with getrandom.
2020-08-15 15:01:41 -04:00
Eric Hawicz
104b408ee8
Merge pull request #656 from pogaram/fix-warnings
...
Fixed warnings
2020-08-14 16:57:32 -04:00
Eric Hawicz
98b7ee93fd
Merge pull request #655 from MarcT512/issue654
...
json_parse: Fix read past end of buffer
2020-08-07 10:18:30 -04:00
Eric Haszlakiewicz
8c7849e6e3
Eliminate use of ctype.h and replace isdigit() and tolower() with non-locale-sensitive approaches.
2020-08-02 04:06:44 +00:00
Eric Haszlakiewicz
f3d8006d34
Neither vertical tab nor formfeed are considered whitespace per the JSON spec, remove them from is_ws_char().
2020-08-02 03:59:56 +00:00
Eric Haszlakiewicz
8b43ff0c22
Merge the is_ws_char() and is_hex_char() changes to json_tokener from branch 'ramiropolla/for_upstream' (PR #464 )
2020-08-02 02:55:45 +00:00
Eric Haszlakiewicz
bfec9c8685
Take a hint from PR #464 and use json_object_new_string_len() to avoid a needless extra strlen() call.
...
Also, create a _json_object_get_string_len() for internal use when we know
for sure the object we're dealing with is a json_type_string.
2020-08-02 02:23:01 +00:00
Eric Hawicz
56a89f902f
Merge pull request #653 from lamby/966657-json-c-please-make-the-build-reproducible
...
Make the documentation build reproducibly
2020-08-01 22:06:38 -04:00
Eric Hawicz
88cce7b9c5
Merge pull request #651 from alanc/getrandom
...
Getrandom
2020-07-31 20:30:11 -04:00
Eric Haszlakiewicz
002411293d
Issue #649 : Drop the generated doc/Doxyfile when creating a release.
2020-07-28 03:52:22 +00:00
Eric Hawicz
66f8ca3c03
Merge pull request #650 from sartura/readme-update
...
README: fix spelling errors
2020-07-27 10:31:05 -04:00
Eric Haszlakiewicz
47189b5ff1
Include updating the json-c-current-releaes gh-pages symlink as part of the release process.
2020-07-26 15:51:07 +00:00
Eric Haszlakiewicz
de02d09c32
Update the master branch to version 0.15.99
2020-07-26 15:26:53 +00:00
Eric Haszlakiewicz
870965e1ea
Update AUTHORS, add issues_closed_for_0.15.md, tweak the release checklist slightly.
2020-07-24 03:17:13 +00:00
Eric Hawicz
616b1050b2
Merge pull request #648 from MarcT512/rbf
...
Fix "may be used uninitialized" Release build failure
2020-07-23 22:26:58 -04:00
Eric Haszlakiewicz
730e3d044f
Issue #594 - provide an OVERRIDE_GET_RANDOM_SEED cmake variable to override json_c_get_random_seed() for embedded platforms where time(NULL) doesn't work.
...
Example:
mkdir build && cd build
cmake -DOVERRIDE_GET_RANDOM_SEED='do { extern uint32_t getMsTicks(void); int ms = getMsTicks() * 433494437; return ms; } while(0)' ..
2020-07-22 02:25:03 +00:00
Eric Hawicz
64de4b6e9f
Merge pull request #646 from pascal-cuoq/fix_645
...
Cast to unsigned char instead of int when calling tolower (Fixes #645 )
2020-07-21 21:24:59 -04:00
Eric Haszlakiewicz
024e835f4c
Update the ChangeLog with recent changes, in preparation for a 0.15 release.
2020-07-20 03:39:01 +00:00
Eric Haszlakiewicz
78a0f2ea5d
Remove the obsolete config.h.win32
2020-07-17 03:47:28 +00:00
Eric Haszlakiewicz
e46b9cdb7d
Fix a number of things with the generated docs, including translating triple-backtick code blocks into a form doxygen understands.
2020-07-17 03:46:21 +00:00
Eric Haszlakiewicz
9a7de35b92
Add some more detail about how to use json-c in README.md.
2020-07-17 03:42:38 +00:00
Eric Haszlakiewicz
cb10a13e94
Remove the THIS_FUNCTION_IS_DEPRECATED define, we stopped using it long ago.
2020-07-17 03:20:29 +00:00
Eric Haszlakiewicz
2508109b18
Remove the obsolete README.json_object-split.md, and mark README.md as being the doxygen mainpage.
2020-07-12 19:16:19 +00:00
Eric Haszlakiewicz
4d9f6dd22e
Issue #642 : improve the docs for json_object_put() and json_object_get().
2020-07-12 18:43:27 +00:00
Eric Haszlakiewicz
2330c6f0de
Expand the doc for json_object_array_get_idx() to explain that it does not adjust refcounts.
2020-07-12 17:55:46 +00:00
Eric Haszlakiewicz
6542d33cd1
Issue #641 : Add a cast to void * to address some theoretically undefined printf behavior.
2020-07-11 15:03:00 +00:00
Eric Haszlakiewicz
10a9ac245e
Issue #642 : improve docs for json_tokener.h and json_object_object_add().
2020-07-11 04:04:58 +00:00
Eric Haszlakiewicz
6fa8b7ff42
Don't export json-c symbols starting with an underscore, put deprecated exports into a "JSONC_PRIVATE" version, and note stuff to do during releases.
...
See also PR #639 and issue #621
2020-07-04 19:00:10 +00:00
Eric Haszlakiewicz
6068d3f6d1
Change the strerror_override handling to check $_JSON_C_STRERROR_OVERRIDE instead of using a variable, so we don't need to export it.
2020-07-04 18:58:00 +00:00
Eric Hawicz
b01d50b8dc
Merge pull request #639 from smcv/symbol-versions
...
build: Add a symbol version to all exported symbols
2020-07-04 14:26:20 -04:00
Eric Haszlakiewicz
6465e74020
Use constants referring to the signed integer types when setting SSIZE_T_MAX.
...
In practice, the sizes of the signed and unsigned integer types will
almost cetainly be the same, but this is more correct.
Pointed out in issue #638 .
2020-07-01 00:34:46 +00:00
Eric Haszlakiewicz
34334e5d3f
Replace one call to json_object_new_array() with json_object_new_array_ext() to ensure it at least minimally works.
2020-06-29 02:35:26 +00:00
Eric Haszlakiewicz
0b67caec1a
Add doc comment for json_object_new_array_ext().
2020-06-29 02:31:32 +00:00
Eric Haszlakiewicz
a4e3700972
Fix code formatting
2020-06-29 02:31:18 +00:00
Eric Haszlakiewicz
5f3bf70f03
Make sure TEST_PARSE_CHUNKSIZE is valid if it's set.
2020-06-29 02:18:34 +00:00
Eric Haszlakiewicz
f23486a321
In the json_tokener_state_number case, explicitly adjust what "number" characters are allowed based on the exact micro-state that we're in, and check for invalid following characters in a different way, to allow a valid json_type_number object to be returned at the top level.
...
This causes previously failing strings like "123-456" to return a valid json_object with the appropriate value. If you care about the trailing content, call json_tokener_parse_ex() and check the parse end point with json_tokener_get_parse_end().
2020-06-29 02:14:26 +00:00
Eric Haszlakiewicz
6eac6986c9
Fix incremental parsing of invalid numbers with exponents, such as "0e+-" and "12.3E12E12", while still allowing "0e+" in non-strict mode.
...
Deprecate the json_parse_double() function from json_util.h
2020-06-27 15:35:04 +00:00
Eric Haszlakiewicz
84e6032883
Issue #635 : Fix "expression has no effect" warning in json_tokener.c by casting to void.
2020-06-23 02:51:46 +00:00
Eric Haszlakiewicz
7a72805e34
Fix memory leak in test_parse's single_incremental_parse().
2020-06-22 01:12:03 +00:00
Eric Haszlakiewicz
7d3c2d9fad
Drop extra blank lines from arraylist.h
2020-06-21 18:30:40 +00:00
Eric Haszlakiewicz
a68566bf6a
Issue #616 : Change the parsing of surrogate pairs in unicode escapes so it uses a couple of additional states instead of assuming the low surrogate is already present, to ensure that we correctly handle various cases of incremental parsing.
2020-06-21 18:29:57 +00:00
Eric Haszlakiewicz
197e372464
In test_parse, fix lengths passed during a couple of incremental tests.
...
Add an optional way to use an incremental chunk size ($TEST_PARSE_CHUNKSIZE)
for all of the single_basic_parse tests, in additional to the regular way.
2020-06-21 17:36:38 +00:00
Eric Haszlakiewicz
36118b681e
Rearrange the json_tokener_state_escape_unicode case in json_tokener to simplify the code slightly and make it a bit easier to understand.
...
While here, drop the utf8_replacement_char that is unnecesarily added if we run out of input in the middle of a unicode escape. No other functional changes (yet).
2020-06-21 03:10:55 +00:00
Eric Haszlakiewicz
50179fb09f
Update the json_tokener_parse_ex() docs to clarify that the final '\0' character is to be included in length passed in.
2020-06-21 02:35:42 +00:00
Eric Hawicz
da76ee26e7
Merge pull request #633 from dota17/issue616
...
fix issue 616: support the surrogate pair in split file.
2020-06-20 22:33:17 -04:00
Eric Haszlakiewicz
e26a1195f4
Add json_object_array_shrink() (and array_list_shrink()) and use it in json_tokener to minimize the amount of memory used. This results in a 39%-50% reduction in memory use (peak RSS, peak heap usage) on the jc-bench benchmark and 9% shorter runtime.
...
Also add the json_object_new_array_ext, array_list_new2, and array_list_shrink functions.
2020-06-20 18:03:04 +00:00
Eric Hawicz
99bb2121c6
Merge pull request #632 from json-c/json_object-split
...
Json object split
2020-06-20 13:04:32 -04:00
Eric Haszlakiewicz
0710c835a1
Reformat the json_object-split branch with clang-format
2020-06-16 13:17:58 +00:00
Eric Hawicz
401b29c021
Merge pull request #634 from micahsnyder/json-c-fPIC
...
Issue #508 : `-fPIC` to link libjson-c.a with libs
2020-06-14 17:56:35 -04:00
Eric Haszlakiewicz
9128ec49b1
Include unistd.h to fix the build on OSX
2020-06-14 03:11:44 +00:00
Eric Haszlakiewicz
5ebfeaedc5
Drop the _delete field from struct json_object and call the type-specific delete functions directly from json_object_put. (Thanks @dota17 for the suggestion in PR #632!)
2020-06-13 18:34:35 +00:00
Eric Haszlakiewicz
4c10712114
Drop the useless "char data[1]" from struct json_object. Fix a typo in a comment.
2020-06-13 18:25:32 +00:00
Eric Haszlakiewicz
85c244f048
Eliminate unnecessary cast that was added to test_double_serializer.
2020-06-07 18:50:10 +00:00
Eric Haszlakiewicz
02fe2e0ccd
Summarize the changes from the json_object-split branch in the ChangeLog.
2020-06-07 18:45:17 +00:00
Eric Haszlakiewicz
ecdfeb18cf
Move the ssize_t typedef from json_inttypes.h to json_object_private.h so as not to affect publically exposed symbols.
2020-06-07 18:29:56 +00:00
Eric Haszlakiewicz
66d91fdf86
The split of json_object into type-specific sub-structures is now functionally complete.
...
Remove all of the temporary defines, structures, old compat fuctions, extra fields, etc... that were needed during the conversion to a split set of json_object_* structures.
2020-06-07 17:23:56 +00:00
Eric Haszlakiewicz
c4cc673071
More fixes for old MSVC builds.
2020-06-07 15:25:59 +00:00
Eric Haszlakiewicz
0a16b23adf
Fix typo in previous commit to check for SSIZE_T on MSVC.
2020-06-07 15:19:29 +00:00
Eric Haszlakiewicz
eab1375123
Change CMakeLists.txt to look for SSIZE_T on MSVC too.
2020-06-07 03:36:59 +00:00
Eric Haszlakiewicz
b0466b626b
On MSVC, add a ssize_t typedef using SSIZE_T from BaseTsd.h
2020-06-07 03:27:13 +00:00
Eric Haszlakiewicz
0fc9d91277
Kick json_type_string out of struct json_object.
...
The default is now that string data is stored inline at the end of json_object, though to allow for json_object_set_string() to set a _longer_ string, we still need to allow for the possibility of a separate char * pointer.
All json types have been split out now, next step it cleanup.
2020-06-07 02:56:59 +00:00
Eric Hawicz
bc06f82f85
Merge pull request #628 from clamwin/compat-fixes-master
...
get_cryptgenrandom_seed: compat with old windows + fallback
2020-06-03 23:53:46 -04:00
Eric Haszlakiewicz
1c6086a86a
Apply the fix from @pointbre in issue #626 to skip "inline" on AIX, but invert the test to make it a little easier to understand.
2020-05-31 03:22:14 +00:00
Eric Haszlakiewicz
fe308b8862
Issue #626 : Restore compatibility with cmake 2.8 by adjusting quoting and explicitly defining the PROJECT_VERSION* variables.
2020-05-30 19:37:46 +00:00
Eric Haszlakiewicz
9ecb1222bd
Kick json_type_int and json_type_double out of struct json_object.
...
Clean up the code in json_object_new_* a bit by dropping unnecesary json_object_base variables.
2020-05-26 02:31:35 +00:00
Eric Haszlakiewicz
0351bb55c8
Declare variables earlier, to appease Visual Studio 2010.
2020-05-25 04:10:11 +00:00
Eric Haszlakiewicz
d1f83bf5ea
Kick json_type_boolean out of struct json_object.
2020-05-25 04:05:32 +00:00
Eric Haszlakiewicz
5d89fc8a9d
Add some backwards compat for Visual Studio 2013.
2020-05-25 03:52:36 +00:00
Eric Haszlakiewicz
02b687b9a6
Kick json_type_array out of struct json_object; re-enable the test_deep_copy test.
2020-05-25 03:44:56 +00:00
Eric Haszlakiewicz
853b4b5dee
Start splitting struct json_object into multiple sub-types, as descibed at https://github.com/json-c/json-c/wiki/Proposal:-struct-json_object-split
...
The current changes split out _only_ json_type_object, and thus have a number of hacks
to allow the code to continue to build and work.
Originally mentioned in issue #535 .
When complete, this will probably invalidate #552 .
This is likely to cause notable conflicts in any other significant un-merged
changes, such as PR#620.
2020-05-25 03:18:36 +00:00
Eric Haszlakiewicz
4a546e7b2f
In arraylist, use malloc instead of calloc, avoid clearing with memeset until we really need to, and micro-optimize array_list_add().
2020-05-24 03:54:04 +00:00
Eric Hawicz
fbe1543644
Merge pull request #622 from besser82/topic/besser82/doc_subdir
...
doc: Move Doxyfile into doc subdir.
2020-05-18 15:30:21 -04:00