From 0acec0eae9edb23c896731e74e6d80c91c8f2283a058fa5ad575c89765a6ff8f Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Wed, 24 Jun 2020 13:38:35 +0000 Subject: [PATCH] https://bugzilla.opensuse.org/show_bug.cgi?id=1173314 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/jsoncpp?expand=0&rev=26 --- jsoncpp-1.9.2.tar.gz | 3 ++ jsoncpp-1.9.3.tar.gz | 3 -- ...11c8785082ead760494cba06196f14a06dcb.patch | 45 +++++++++++++++++++ jsoncpp.changes | 16 ------- jsoncpp.spec | 11 +++-- 5 files changed, 55 insertions(+), 23 deletions(-) create mode 100644 jsoncpp-1.9.2.tar.gz delete mode 100644 jsoncpp-1.9.3.tar.gz create mode 100644 jsoncpp-f11611c8785082ead760494cba06196f14a06dcb.patch diff --git a/jsoncpp-1.9.2.tar.gz b/jsoncpp-1.9.2.tar.gz new file mode 100644 index 0000000..9b56dfc --- /dev/null +++ b/jsoncpp-1.9.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77a402fb577b2e0e5d0bdc1cf9c65278915cdb25171e3452c68b6da8a561f8f0 +size 211341 diff --git a/jsoncpp-1.9.3.tar.gz b/jsoncpp-1.9.3.tar.gz deleted file mode 100644 index f5663ab..0000000 --- a/jsoncpp-1.9.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8593c1d69e703563d94d8c12244e2e18893eeb9a8a9f8aa3d09a327aa45c8f7d -size 212922 diff --git a/jsoncpp-f11611c8785082ead760494cba06196f14a06dcb.patch b/jsoncpp-f11611c8785082ead760494cba06196f14a06dcb.patch new file mode 100644 index 0000000..93780c4 --- /dev/null +++ b/jsoncpp-f11611c8785082ead760494cba06196f14a06dcb.patch @@ -0,0 +1,45 @@ +From f11611c8785082ead760494cba06196f14a06dcb Mon Sep 17 00:00:00 2001 +From: Andrew Childs +Date: Sat, 28 Dec 2019 16:04:24 +0900 +Subject: [PATCH] json_writer: fix inverted sense in isAnyCharRequiredQuoting + (#1120) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This bug is only affects platforms where `char` is unsigned. + +When char is a signed type, values >= 0x80 are also considered < 0, +and hence require escaping due to the < ' ' condition. + +When char is an unsigned type, values >= 0x80 match none of the +conditions and are considered safe to emit without escaping. + +This shows up as a test failure: + +* Detail of EscapeSequenceTest/writeEscapeSequence test failure: +/build/source/src/test_lib_json/main.cpp(3370): expected == result + Expected: '["\"","\\","\b","\f","\n","\r","\t","\u0278","\ud852\udf62"] + ' + Actual : '["\"","\\","\b","\f","\n","\r","\t","ɸ","𤭢"] + ' +--- + src/lib_json/json_writer.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp +index 8e06cca2..56195dc1 100644 +--- a/src/lib_json/json_writer.cpp ++++ b/src/lib_json/json_writer.cpp +@@ -178,8 +178,9 @@ static bool isAnyCharRequiredQuoting(char const* s, size_t n) { + + char const* const end = s + n; + for (char const* cur = s; cur < end; ++cur) { +- if (*cur == '\\' || *cur == '\"' || *cur < ' ' || +- static_cast(*cur) < 0x80) ++ if (*cur == '\\' || *cur == '\"' || ++ static_cast(*cur) < ' ' || ++ static_cast(*cur) >= 0x80) + return true; + } + return false; diff --git a/jsoncpp.changes b/jsoncpp.changes index 3d87cf3..b7ff70d 100644 --- a/jsoncpp.changes +++ b/jsoncpp.changes @@ -1,19 +1,3 @@ -------------------------------------------------------------------- -Fri Jun 19 06:00:24 UTC 2020 - Martin Pluskal - -- Update to version 1.9.3" - * Fixes to JSON_USE_EXCEPTION--some bugs creeped in breaking this - flag in pre-release. - * Fixes to build system--improvements have been make for code - correctness. - * Compile errors for various platforms have been resolved. - * Fuzzing has been fixed. - * Various bugs in the Reader and Writer code have been corrected. - * CPPTL support has been dropped. - * Various code improvements and optimizations. -- Drop no longer needed patch: - * jsoncpp-f11611c8785082ead760494cba06196f14a06dcb.patch - ------------------------------------------------------------------- Wed Feb 12 07:46:21 UTC 2020 - Guillaume GARDET diff --git a/jsoncpp.spec b/jsoncpp.spec index 088b3a9..f76a9ef 100644 --- a/jsoncpp.spec +++ b/jsoncpp.spec @@ -16,15 +16,17 @@ # -%define sover 24 +%define sover 22 Name: jsoncpp -Version: 1.9.3 +Version: 1.9.2 Release: 0 Summary: C++ library that allows manipulating with JSON License: MIT Group: Development/Libraries/C and C++ URL: https://github.com/open-source-parsers/jsoncpp Source0: https://github.com/open-source-parsers/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM - https://github.com/open-source-parsers/jsoncpp/commit/f11611c8785082ead760494cba06196f14a06dcb +Patch1: jsoncpp-f11611c8785082ead760494cba06196f14a06dcb.patch BuildRequires: gcc-c++ BuildRequires: meson >= 0.50.0 BuildRequires: pkgconfig @@ -67,10 +69,11 @@ existing comment in unserialization/serialization steps, making it a convenient format to store user input files. %prep -%autosetup +%setup -q +%patch1 -p1 %build -%meson +%meson \ %meson_build %install