Commit Graph
1440 Commits
Author SHA1 Message Date
Eric Hawicz cce075f551 Merge pull request #930 from dxbjavid/get-double-locale-radix
fix locale-dependent strtod in json_object_get_double
2026-06-21 19:46:36 -04:00
Eric Hawicz e1812074fa Issue #928 - work around over-zealous uninitialized check in chromebrew gcc. 2026-06-21 19:25:37 -04:00
Eric Hawicz d9d8cab822 Add tests for the json_parse cli tool. 2026-06-21 13:44:59 -04:00
Eric Hawicz bb9c1238ad Save stderr from test output, allow for non-zero exit code from tests. 2026-06-21 13:43:11 -04:00
Eric Hawicz 1d658982e5 Issue #929: fix bad calculation of error offset when parsing in the apps/json_parse tool.
Also, show the failing character in hex to ensure error output is readable.
2026-06-21 12:43:20 -04:00
dxbjavid c6cd1f236c fix locale-dependent strtod in json_object_get_double 2026-06-15 23:53:53 +05:30
Eric Hawicz d1018cf6ba Update test_object_iterator.expect to match current test output. 2026-05-25 15:27:48 -04:00
Eric Hawicz 3e708e4c4f Drop osx from .travis.yml since macOS builds are no longer supported. 2026-05-24 16:15:19 -04:00
Eric Hawicz 6167807f3a Merge pull request #925 from mbroz/fix-build
Fix build with clang-21
2026-05-24 16:07:11 -04:00
Eric Hawicz dee128f4d6 Issue #927: update the documentation for json_object_iterator to clarify that any change of the fields present on the object being iterated invalidates the iterator.
Update the test to show what kind of changes _are_ allowed.
2026-05-23 14:31:45 -04:00
Eric Hawicz 2bfda7114b Remove never used struct json_object_iter_info_ 2026-05-23 14:31:45 -04:00
Eric Hawicz 79474075ce Fix expected output for test_deep_nesting 2026-05-23 14:31:45 -04:00
Milan Broz 1f7589fa2f Fix function prototypes in deep nesting test (clang compilation)
This patch fixes the build error with clang-21
  tests/test_deep_nesting.c:19:34: error: a function declaration
  without a prototype is deprecated in all versions of C
  [-Werror,-Wstrict-prototypes]
   19 | static char *generate_json_string()

by fixing generate_json_string() definition.

It also removes prototypes for static functions that are not needed.
2026-05-12 21:46:50 +02:00
Eric Hawicz ccd2803b3d Merge pull request #924 from json-c/put_no_recurse
avoid recursion during json_object_put
2026-05-03 20:49:09 -04:00
Eric Hawicz 17328a6713 Issue #923: Avoid stack recursion in json_object_put() so heavily nested object trees can be freed. 2026-05-03 20:44:28 -04:00
Eric Hawicz e50fb04154 Add lh_table_delete_entry_to_tail() and array_list_set_idx() functions. 2026-05-03 20:44:08 -04:00
Eric Hawicz 5320cf9753 Add a test to check for issues with deeply nested objects, which can cause problems due to stack recursion. 2026-05-03 20:44:02 -04:00
Eric Hawicz 52ddfb35f1 Fix memory leak in test_safe_json_pointer_set, the caller must free the passed value when json_pointer_set failed. Also, reformat. 2026-02-19 19:05:10 -05:00
Eric Hawicz 8c987e0b73 Issue #919: Fix build on non-x86 windows. Patch thanks to @dotanbrk 2026-02-19 18:48:05 -05:00
Eric Hawicz d7f14cb330 Merge pull request #917 from thely314/fix/oom-too-large-index
Fix: OOM vulnerability cause by is_valid_index
2026-02-14 17:23:49 -05:00
lone c293d9b61c general callback, safer API & related tests
- Changed json_pointer_set_with_array_cb to json_pointer_set_with_cb, related cb updated
- Added tests(test_safe_json_pointer_set.*) for new-exported funcs, also updated cmake & meson

Signed-off-by: lone <lonechan314@qq.com>
2026-02-09 14:01:38 +08:00
Eric Hawicz 8c01a7c32f Merge pull request #903 from neheb/1
meson / Linux-GCC (13) (push) Has been cancelled
meson / Linux-GCC (9) (push) Has been cancelled
meson / Linux-Clang (22) (push) Has been cancelled
meson / Linux-Clang (9) (push) Has been cancelled
meson / VisualStudio (x64) (push) Has been cancelled
meson / VisualStudio (x86) (push) Has been cancelled
meson / VisualStudio-clang-cl (push) Has been cancelled
meson / MSYS2 (CLANG64) (push) Has been cancelled
meson / MSYS2 (UCRT64) (push) Has been cancelled
meson / Cygwin (push) Has been cancelled
meson / MacOS (push) Has been cancelled
meson / DragonflyBSD (push) Has been cancelled
meson / FreeBSD (push) Has been cancelled
meson / NetBSD (push) Has been cancelled
meson / OmniOS (push) Has been cancelled
meson / OpenBSD (push) Has been cancelled
meson / Alpine (aarch64) (push) Has been cancelled
meson / Alpine (armhf) (push) Has been cancelled
meson / Alpine (armv7) (push) Has been cancelled
meson / Alpine (ppc64le) (push) Has been cancelled
meson / Alpine (riscv64) (push) Has been cancelled
meson / Alpine (s390x) (push) Has been cancelled
meson / Alpine (x86) (push) Has been cancelled
meson / Alpine (x86_64) (push) Has been cancelled
meson: use override_dependency
2026-02-08 17:08:04 -05:00
Rosen Penev d61b41c8bb github CI: add
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2026-02-05 13:46:00 -08:00
Rosen Penev 1d4885ad09 fix compilation with clang-cl
Something in the configure stage goes wrong where it believe strncasecmp
is present but the header defining it is not. Work around this.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2026-02-05 13:46:00 -08:00
Rosen Penev 92a4911e88 meson: use static library for tests
Needed as tests use private APIs that are not exported.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2026-02-05 13:46:00 -08:00
Rosen Penev 798d8f7235 meson: add license information
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2026-02-05 13:21:54 -08:00
Rosen Penev a0c6bb32dd meson: simplify __thread check and fix MinGW
> was missing.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2026-02-05 13:21:54 -08:00
Rosen Penev af2671a212 meson: use override_dependency
Allows wraps to use the dependency_names syntax instead of the possibly
changing variable syntax.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2026-02-05 13:21:54 -08:00
Eric Hawicz 46defb4349 Merge pull request #915 from jaisonZheng/fix-macos-locale-memory-leak
Fix memory leak on macOS by auto-enabling NEWLOCALE_NEEDS_FREELOCALE
2026-01-31 13:22:57 -05:00
lone bda8299eb1 fix: adapt to the early C std
Signed-off-by: lone <lonechan314@qq.com>
2026-01-27 14:43:56 +08:00
lone 1c3b98ddb5 amend: removed marco related logic
Signed-off-by: lone <lonechan314@qq.com>
2026-01-26 17:54:53 +08:00
lone 22e470ac5c Fix: try to make json_pointer_set_with_array_cb a public api
make json_pointer_set_with_array_cb a public api, along with a function with wrapped callback

Signed-off-by: lone <lonechan314@qq.com>
2026-01-26 17:33:00 +08:00
lone 3d86402028 Fix: OOM vulnerability cause by is_valid_index
An OOM vulnerability exists in the json_pointer_set function (and related functions).
See issue #916 for more details.

To fix that, added a sanity check in the is_valid_index function to limit the maximum value of a parsed array index.
Provided a configurable macro for modification.

Signed-off-by: lone <lonechan314@qq.com>
2026-01-25 23:54:27 +08:00
JaisonZheng 653a12c7c2 Fix memory leak on macOS by auto-enabling NEWLOCALE_NEEDS_FREELOCALE
macOS's newlocale() does not follow POSIX specification - it doesn't
reuse the passed locale_t, causing ~1,472 bytes leak per json_tokener_parse() call.

This is the same issue as #668 (FreeBSD). The existing workaround works,
but macOS was not auto-detected.

Tested with AddressSanitizer: leak drops from 1,472,000 bytes to ~120 bytes
(system init only).
2026-01-21 17:28:20 +08:00
Eric Hawicz d05ea4851f Update ChangeLog, abi-check.sh, AUTHORS and issues_closed list for an upcoming 0.19 release. 2026-01-19 17:46:57 -05:00
Eric Hawicz 8948568031 Merge pull request #913 from mlocati-forks/dll-versioninfo
Add VERSIONINFO to libjson-c.dll
2026-01-18 15:25:29 -05:00
Michele Locati b01b5b701b Add VERSIONINFO to libjson-c.dll 2026-01-18 20:23:50 +01:00
Eric Hawicz 26fcd8d569 Merge pull request #910 from bhaible/support-msvc-with-autoconf
Support MSVC in packages that use GNU Autoconf.
2026-01-09 23:18:40 -05:00
Bruno Haible 9774826e79 Support MSVC in packages that use GNU Autoconf.
Fixes https://github.com/json-c/json-c/issues/909

When ssize_t is defined as a macro, typically through a package's config.h file,
the installed json*.h files must not attempt to define ssize_t via typedef.
2026-01-09 23:51:43 +01:00
Eric Hawicz 14c8e2e5ee Merge pull request #907 from travier/master-cmake4
tests/CMakeLists: Allow build with CMake 4
2025-12-29 23:42:24 -05:00
Timothée Ravier e4b9dfba49 tests/CMakeLists: Allow build with CMake 4
See: https://github.com/json-c/json-c/issues/889
2025-12-23 11:52:43 +01:00
Eric Hawicz a1249bfda0 Merge pull request #905 from glance-/fix-typo
Fix typo
2025-12-01 06:37:11 -05:00
Anton Lundin dc44b05961 Fix typo
That include line wasn't valid code, so that resulted in:
Checking for size of "size_t" : -1

And later on:
json-c/json_patch.c:28:2: error: #error Unable to determine size of size_t
2025-12-01 11:37:59 +01:00
Eric Hawicz 20974e5f88 Merge pull request #904 from Lakshmi-Surekha/aix-getopt-dont-include
Include getopt.h header file if the platform is not AIX.
2025-11-29 11:40:00 -05:00
Lakshmi-Surekha a7b34a299b apps: use CMake check for getopt.h
Add CMake detection for getopt.h and update json_parse.c to include it
only when HAVE_GETOPT_H is defined. Fixes AIX build failure.
2025-11-29 01:32:10 -06:00
Eric Hawicz 243ed1a51c Merge pull request #900 from neheb/1
meson cleanups
2025-11-04 18:32:47 -05:00
Rosen Penev f565798e2c meson: remove useless if
get_supported_arguments already handles this.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-11-04 10:45:20 -08:00
Rosen Penev 8c012da8a6 meson: add header to size_t check
Might be needed under MSVC.
2025-11-04 10:45:20 -08:00
Rosen Penev bd7355470e meson: replace target_machine with host_machine
The latter is the canonical way to express this.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-11-04 10:45:20 -08:00
Rosen Penev 40fe4d2b04 meson: use loops for checks
All of these are effectively the same. No point in duplicating it
everywhere.

Remove prefix from has_function. Apparently having the prefix in there
changes behavior.

Also fix an error on MinGW where SSIZE_T_MAX is undefined.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2025-11-04 10:44:42 -08:00