From 7940705d3fdcb32597cbc6b0d3bd90075c6250a1 Mon Sep 17 00:00:00 2001 From: sun_hai_10 Date: Fri, 6 Dec 2024 16:11:48 +0800 Subject: [PATCH] Fix the apps/json_parse -s (strict) option, default to non-strict (cherry picked from commit 536e8a4eb4207fe720989a513b5a01ab8597f6a9) --- ...n_parse-s-strict-option-so-it-actual.patch | 37 +++++++++++++++++++ json-c.spec | 32 ++++++++++------ 2 files changed, 58 insertions(+), 11 deletions(-) create mode 100644 backport-Fix-the-apps-json_parse-s-strict-option-so-it-actual.patch diff --git a/backport-Fix-the-apps-json_parse-s-strict-option-so-it-actual.patch b/backport-Fix-the-apps-json_parse-s-strict-option-so-it-actual.patch new file mode 100644 index 0000000..1a5cd0e --- /dev/null +++ b/backport-Fix-the-apps-json_parse-s-strict-option-so-it-actual.patch @@ -0,0 +1,37 @@ +From 474ee12435e671607c02f764b173258e3a059eda Mon Sep 17 00:00:00 2001 +From: Eric Hawicz +Date: Sun, 3 Nov 2024 19:44:21 -0500 +Subject: [PATCH] Fix the apps/json_parse "-s" (strict) option so it actually + does something, and default to non-strict. + +--- + apps/json_parse.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/apps/json_parse.c b/apps/json_parse.c +index 31221d0..4eb629b 100644 +--- a/apps/json_parse.c ++++ b/apps/json_parse.c +@@ -74,11 +74,14 @@ static int parseit(int fd, int (*callback)(struct json_object *)) + fprintf(stderr, "unable to allocate json_tokener: %s\n", strerror(errno)); + return 1; + } +- json_tokener_set_flags(tok, JSON_TOKENER_STRICT +-#ifdef JSON_TOKENER_ALLOW_TRAILING_CHARS +- | JSON_TOKENER_ALLOW_TRAILING_CHARS +-#endif +- ); ++ if (strict_mode) ++ { ++ json_tokener_set_flags(tok, JSON_TOKENER_STRICT ++ #ifdef JSON_TOKENER_ALLOW_TRAILING_CHARS ++ | JSON_TOKENER_ALLOW_TRAILING_CHARS ++ #endif ++ ); ++ } + + // XXX push this into some kind of json_tokener_parse_fd API? + // json_object_from_fd isn't flexible enough, and mirroring +-- +2.33.0 + diff --git a/json-c.spec b/json-c.spec index 92b8260..9a46a1b 100644 --- a/json-c.spec +++ b/json-c.spec @@ -6,7 +6,7 @@ Name: json-c Version: 0.17 -Release: 5 +Release: 6 Summary: JSON implementation in C License: MIT @@ -15,13 +15,14 @@ Source0: %{url}/archive/%{name}-%{version}-%{reldate}.tar.gz BuildRequires: cmake gcc ninja-build -Patch001: backport-fix-issue-854-Set-error-json_tokener_error_memory-in.patch -Patch002: backport-Handle-yet-another-out-of-memory-condition.patch -Patch003: backport-Issue-857-fix-a-few-places-where-json_tokener-should.patch -Patch004: backport-Take-2-fixing-the-placement-of-json_tokener_error_memory.patch -Patch005: backport-Issue-867-disallow-control-characters-in-strict-mode.patch -Patch006: backport-Fix-the-expected-output-for-test_parse.patch -Patch007: backport-Fix-issue-875-cast-to-unsigned-char-so-bytes-above-0.patch +Patch6001: backport-fix-issue-854-Set-error-json_tokener_error_memory-in.patch +Patch6002: backport-Handle-yet-another-out-of-memory-condition.patch +Patch6003: backport-Issue-857-fix-a-few-places-where-json_tokener-should.patch +Patch6004: backport-Take-2-fixing-the-placement-of-json_tokener_error_memory.patch +Patch6005: backport-Issue-867-disallow-control-characters-in-strict-mode.patch +Patch6006: backport-Fix-the-expected-output-for-test_parse.patch +Patch6007: backport-Fix-issue-875-cast-to-unsigned-char-so-bytes-above-0.patch +Patch6008: backport-Fix-the-apps-json_parse-s-strict-option-so-it-actual.patch %description JSON-C implements a reference counting object model that allows you @@ -109,10 +110,19 @@ end %doc %{_pkgdocdir} %changelog +* Fri Dec 06 2024 sunhai - 0.17-6 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC: Fix the apps/json_parse "-s" (strict) option so it actually does something, and default to non-strict. + * Wed Dec 04 2024 yueyuankun - 0.17-5 -- Disallow control characters in strict mode -- Fix the expected output for test_parse -- Fix causing the strict-mode control characters check to incorrectly trigger +- Type:bugfix +- ID:NA +- SUG:NA +- DESC: Disallow control characters in strict mode + Fix the expected output for test_parse + Fix causing the strict-mode control characters check to incorrectly trigger * Tue Sep 24 2024 sunhai - 0.17-4 - Take 2 fixing the placement of json_tokener_error_memory in the enum.