From 57b32d97736d204e303be26f44ea6159c3041ad9 Mon Sep 17 00:00:00 2001 From: Andreas Smas Date: Tue, 20 Dec 2016 21:38:01 +0100 Subject: [PATCH 01/15] Add Doozer build badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 97ae6854..16c7eabf 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ [![Build Status](https://travis-ci.org/nlohmann/json.svg?branch=master)](https://travis-ci.org/nlohmann/json) [![Build Status](https://ci.appveyor.com/api/projects/status/1acb366xfyg3qybk/branch/develop?svg=true)](https://ci.appveyor.com/project/nlohmann/json) +[![Build status](https://doozer.io/badge/nlohmann/json/buildstatus/develop)](https://doozer.io/user/nlohmann/json) [![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json) [![Coverity Scan Build Status](https://scan.coverity.com/projects/5550/badge.svg)](https://scan.coverity.com/projects/nlohmann-json) [![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/8soFCqS532vOyZcK) From d7029c37aad0e93033242123e7a7a05a1c76bed4 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Fri, 30 Dec 2016 13:04:33 +0100 Subject: [PATCH 02/15] :white_check_mark: improved test coverage --- test/src/unit-cbor.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/test/src/unit-cbor.cpp b/test/src/unit-cbor.cpp index 9c41dc2f..49a54999 100644 --- a/test/src/unit-cbor.cpp +++ b/test/src/unit-cbor.cpp @@ -28,6 +28,7 @@ SOFTWARE. #include "catch.hpp" +#define private public #include "json.hpp" using nlohmann::json; @@ -1262,6 +1263,12 @@ TEST_CASE("CBOR regressions") } } } + + SECTION("improve code coverage") + { + // exotic edge case + CHECK_THROWS_AS(json::check_length(0xffffffffffffffff, 0xfffffffffffffff0, 0xff), std::out_of_range); + } } TEST_CASE("CBOR roundtrips", "[hide]") From 010ea126f3662c76e2d484e9710be2b8fcd53785 Mon Sep 17 00:00:00 2001 From: Daniel Cohen Date: Sun, 25 Dec 2016 14:04:04 +0200 Subject: [PATCH 03/15] going to try clang_sanitize with libstdc++ with g++-6 implementation Conflicts: .travis.yml Makefile --- .travis.yml | 22 ++++++++++++++-------- Makefile | 3 ++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 006647ed..6bf2297e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,14 +42,20 @@ matrix: - make check TEST_PREFIX="valgrind --error-exitcode=1 --leak-check=full " TEST_PATTERN="" # cLang sanitizer - - #- os: linux - # env: - # - LLVM_VERSION=3.8.1 - # - SPECIAL=sanitizer - # compiler: clang - # before_script: - # - make clang_sanitize + # note: sadly clang's libc++ has errors when running with sanitize, + # so we use clang with gcc's libstdc++ which doesn't give those error. + # that's why we need to install g++-6 to get the lastest version + - os: linux + env: + - LLVM_VERSION=3.8.1 + - SPECIAL=sanitizer + addons: + apt: + sources: ['ubuntu-toolchain-r-test'] + packages: g++-6 + compiler: clang + before_script: + - make clang_sanitize # cppcheck diff --git a/Makefile b/Makefile index e2c120db..c16d9d9b 100644 --- a/Makefile +++ b/Makefile @@ -92,8 +92,9 @@ fuzzing-stop: cppcheck: cppcheck --enable=warning --inconclusive --force --std=c++11 src/json.hpp --error-exitcode=1 +# run clang sanitize (we are overrding the CXXFLAGS provided by travis in order to use gcc's libstdc++) clang_sanitize: clean - CXX=clang++ CXXFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer" $(MAKE) + CXX=clang++ CXXFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer" $(MAKE) check -C test ########################################################################## From ff3221a37573e3313d52d46fd3b94ec658ff66e8 Mon Sep 17 00:00:00 2001 From: Daniel Cohen Date: Sun, 25 Dec 2016 22:52:37 +0200 Subject: [PATCH 04/15] #394 fixed memory leak in unit-allocator, found by clang's fsanitize --- test/src/unit-allocator.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp index 25fd3349..c439c1c3 100644 --- a/test/src/unit-allocator.cpp +++ b/test/src/unit-allocator.cpp @@ -111,6 +111,16 @@ struct my_allocator : std::allocator } }; +// allows deletion of raw pointer, usually hold by json_value +template +void my_allocator_clean_up(T* p) +{ + assert(p != nullptr); + my_allocator alloc; + alloc.destroy(p); + alloc.deallocate(p, 1); +} + TEST_CASE("controlled bad_alloc") { // create JSON type using the throwing allocator @@ -131,7 +141,8 @@ TEST_CASE("controlled bad_alloc") { next_construct_fails = false; auto t = my_json::value_t::object; - CHECK_NOTHROW(my_json::json_value j(t)); + auto clean_up = [](my_json::json_value& j){ my_allocator_clean_up(j.object); }; + CHECK_NOTHROW(my_json::json_value j(t); clean_up(j)); next_construct_fails = true; CHECK_THROWS_AS(my_json::json_value j(t), std::bad_alloc); next_construct_fails = false; @@ -140,7 +151,8 @@ TEST_CASE("controlled bad_alloc") { next_construct_fails = false; auto t = my_json::value_t::array; - CHECK_NOTHROW(my_json::json_value j(t)); + auto clean_up = [](my_json::json_value& j){ my_allocator_clean_up(j.array); }; + CHECK_NOTHROW(my_json::json_value j(t); clean_up(j)); next_construct_fails = true; CHECK_THROWS_AS(my_json::json_value j(t), std::bad_alloc); next_construct_fails = false; @@ -149,7 +161,8 @@ TEST_CASE("controlled bad_alloc") { next_construct_fails = false; auto t = my_json::value_t::string; - CHECK_NOTHROW(my_json::json_value j(t)); + auto clean_up = [](my_json::json_value& j){ my_allocator_clean_up(j.string); }; + CHECK_NOTHROW(my_json::json_value j(t); clean_up(j)); next_construct_fails = true; CHECK_THROWS_AS(my_json::json_value j(t), std::bad_alloc); next_construct_fails = false; @@ -160,7 +173,8 @@ TEST_CASE("controlled bad_alloc") { next_construct_fails = false; my_json::string_t v("foo"); - CHECK_NOTHROW(my_json::json_value j(v)); + auto clean_up = [](my_json::json_value& j){ my_allocator_clean_up(j.string); }; + CHECK_NOTHROW(my_json::json_value j(v); clean_up(j)); next_construct_fails = true; CHECK_THROWS_AS(my_json::json_value j(v), std::bad_alloc); next_construct_fails = false; From cf9bf2d9136a9d1c2131f83aa493bb03f36849ab Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Sun, 1 Jan 2017 15:28:01 +0100 Subject: [PATCH 05/15] :ambulance: fix for #411 and #412 --- src/json.hpp | 11 +++----- src/json.hpp.re2c | 11 +++----- test/src/unit-regression.cpp | 53 ++++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 14 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index f8d948f1..5dc8e67c 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -7135,13 +7135,10 @@ class basic_json */ static basic_json from_cbor_internal(const std::vector& v, size_t& idx) { - // make sure reading 1 byte is safe - check_length(v.size(), 1, idx); - // store and increment index const size_t current_idx = idx++; - switch (v[current_idx]) + switch (v.at(current_idx)) { // Integer 0x00..0x17 (0..23) case 0x00: @@ -7322,7 +7319,7 @@ class basic_json case 0x7f: // UTF-8 string (indefinite length) { std::string result; - while (v[idx] != 0xff) + while (v.at(idx) != 0xff) { string_t s = from_cbor_internal(v, idx); result += s; @@ -7418,7 +7415,7 @@ class basic_json case 0x9f: // array (indefinite length) { basic_json result = value_t::array; - while (v[idx] != 0xff) + while (v.at(idx) != 0xff) { result.push_back(from_cbor_internal(v, idx)); } @@ -7518,7 +7515,7 @@ class basic_json case 0xbf: // map (indefinite length) { basic_json result = value_t::object; - while (v[idx] != 0xff) + while (v.at(idx) != 0xff) { std::string key = from_cbor_internal(v, idx); result[key] = from_cbor_internal(v, idx); diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 2faf3858..49bccb02 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -7135,13 +7135,10 @@ class basic_json */ static basic_json from_cbor_internal(const std::vector& v, size_t& idx) { - // make sure reading 1 byte is safe - check_length(v.size(), 1, idx); - // store and increment index const size_t current_idx = idx++; - switch (v[current_idx]) + switch (v.at(current_idx)) { // Integer 0x00..0x17 (0..23) case 0x00: @@ -7322,7 +7319,7 @@ class basic_json case 0x7f: // UTF-8 string (indefinite length) { std::string result; - while (v[idx] != 0xff) + while (v.at(idx) != 0xff) { string_t s = from_cbor_internal(v, idx); result += s; @@ -7418,7 +7415,7 @@ class basic_json case 0x9f: // array (indefinite length) { basic_json result = value_t::array; - while (v[idx] != 0xff) + while (v.at(idx) != 0xff) { result.push_back(from_cbor_internal(v, idx)); } @@ -7518,7 +7515,7 @@ class basic_json case 0xbf: // map (indefinite length) { basic_json result = value_t::object; - while (v[idx] != 0xff) + while (v.at(idx) != 0xff) { std::string key = from_cbor_internal(v, idx); result[key] = from_cbor_internal(v, idx); diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp index 421a386c..89b27e0e 100644 --- a/test/src/unit-regression.cpp +++ b/test/src/unit-regression.cpp @@ -610,4 +610,57 @@ TEST_CASE("regression tests") CHECK_THROWS_AS(json::from_cbor(vec2), std::out_of_range); CHECK_THROWS_AS(json::from_msgpack(vec2), std::out_of_range); } + + SECTION("issue #411 - Heap-buffer-overflow (OSS-Fuzz issue 366)") + { + // original test case: empty UTF-8 string (indefinite length) + std::vector vec1 {0x7f}; + CHECK_THROWS_AS(json::from_cbor(vec1), std::out_of_range); + + // related test case: empty array (indefinite length) + std::vector vec2 {0x9f}; + CHECK_THROWS_AS(json::from_cbor(vec2), std::out_of_range); + + // related test case: empty map (indefinite length) + std::vector vec3 {0xbf}; + CHECK_THROWS_AS(json::from_cbor(vec3), std::out_of_range); + } + + SECTION("issue #412 - Heap-buffer-overflow (OSS-Fuzz issue 367)") + { + // original test case + std::vector vec + { + 0xab, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, + 0x98, 0x98, 0x98, 0x98, 0x98, 0x00, 0x00, 0x00, + 0x60, 0xab, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, + 0x98, 0x98, 0x98, 0x98, 0x98, 0x00, 0x00, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0xa0, 0x9f, + 0x9f, 0x97, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60 + }; + CHECK_THROWS_AS(json::from_cbor(vec), std::out_of_range); + + // related test case: nonempty UTF-8 string (indefinite length) + std::vector vec1 {0x7f, 0x61, 0x61}; + CHECK_THROWS_AS(json::from_cbor(vec1), std::out_of_range); + + // related test case: nonempty array (indefinite length) + std::vector vec2 {0x9f, 0x01}; + CHECK_THROWS_AS(json::from_cbor(vec2), std::out_of_range); + + // related test case: nonempty map (indefinite length) + std::vector vec3 {0xbf, 0x61, 0x61, 0x01}; + CHECK_THROWS_AS(json::from_cbor(vec3), std::out_of_range); + } } From ab7d55e7ae7c9fab666912876aaa9d9e20d1b618 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Sun, 1 Jan 2017 19:38:54 +0100 Subject: [PATCH 06/15] :construction_worker: removed failing test suites --- .doozer.json | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/.doozer.json b/.doozer.json index 589dccc3..7dbaa5d2 100644 --- a/.doozer.json +++ b/.doozer.json @@ -1,30 +1,5 @@ { "targets": { - "jessie-i386": { - "buildenv": "jessie-i386", - "builddeps": ["build-essential", "cmake", "clang"], - "buildcmd": ["mkdir cm", "cd cm", "CXX=clang++ cmake ..", "cmake --build .", "ctest --output-on-failure"] - }, - "precise-i386": { - "buildenv": "precise-i386", - "builddeps": ["build-essential", "cmake"], - "buildcmd": ["mkdir cm", "cd cm", "cmake ..", "cmake --build .", "ctest --output-on-failure"] - }, - "precise-amd64": { - "buildenv": "precise-amd64", - "builddeps": ["build-essential", "cmake"], - "buildcmd": ["mkdir cm", "cd cm", "cmake ..", "cmake --build .", "ctest --output-on-failure"] - }, - "trusty-i386": { - "buildenv": "trusty-i386", - "builddeps": ["build-essential", "cmake", "clang"], - "buildcmd": ["make check CXX=clang++"] - }, - "trusty-amd64": { - "buildenv": "trusty-amd64", - "builddeps": ["build-essential", "cmake", "clang"], - "buildcmd": ["make check CXX=clang++"] - }, "xenial-i386": { "buildenv": "xenial-i386", "builddeps": ["build-essential", "cmake"], @@ -40,11 +15,6 @@ "builddeps": ["cmake", "make", "clang"], "buildcmd": ["mkdir cm", "cd cm", "CXX=clang++ cmake ..", "cmake --build .", "ctest --output-on-failure"] }, - "centos7-x86_64": { - "buildenv": "centos7-x86_64", - "builddeps": ["build-essential", "cmake"], - "buildcmd": ["mkdir cm", "cd cm", "cmake ..", "cmake --build .", "ctest --output-on-failure"] - }, "osx": { "buildenv": "osx", "builddeps": ["build-essential"], From db33629990c0125bde0fb61e894e00496e1e22b0 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Sun, 1 Jan 2017 21:34:58 +0100 Subject: [PATCH 07/15] :lipstick: cleanup after #410 --- Makefile | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index c16d9d9b..56cbdb0c 100644 --- a/Makefile +++ b/Makefile @@ -94,7 +94,7 @@ cppcheck: # run clang sanitize (we are overrding the CXXFLAGS provided by travis in order to use gcc's libstdc++) clang_sanitize: clean - CXX=clang++ CXXFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer" $(MAKE) check -C test + CXX=clang++ CXXFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -fno-omit-frame-pointer" $(MAKE) ########################################################################## diff --git a/README.md b/README.md index 16c7eabf..06dca7ff 100644 --- a/README.md +++ b/README.md @@ -586,6 +586,7 @@ I deeply appreciate the help of the following people. - [Jared Grubb](https://github.com/jaredgrubb) silenced a nasty documentation warning. - [Yixin Zhang](https://github.com/qwename) fixed an integer overflow check. - [Bosswestfalen](https://github.com/Bosswestfalen) merged two iterator classes into a smaller one. +- [Daniel599](https://github.com/Daniel599) helped to get Travis execute the tests with Clang's sanitizers. Thanks a lot for helping out! From a3063c24194df831cc95b6429a648ea3a6739fcf Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Sun, 1 Jan 2017 21:51:36 +0100 Subject: [PATCH 08/15] :construction: added target to build all fuzzers --- .gitignore | 6 ++++++ test/Makefile | 2 ++ 2 files changed, 8 insertions(+) diff --git a/.gitignore b/.gitignore index eedc9641..6e15abc4 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,9 @@ test/test-* .svn test/thirdparty/Fuzzer/libFuzzer.a + +test/parse_afl_fuzzer + +test/parse_cbor_fuzzer + +test/parse_msgpack_fuzzer diff --git a/test/Makefile b/test/Makefile index 556ab0d7..68520bd3 100644 --- a/test/Makefile +++ b/test/Makefile @@ -84,6 +84,8 @@ check: $(TESTCASES) # fuzzer ############################################################################## +fuzzers: parse_afl_fuzzer parse_cbor_fuzzer parse_msgpack_fuzzer + parse_afl_fuzzer: $(CXX) $(CXXFLAGS) $(CPPFLAGS) src/fuzzer-driver_afl.cpp src/fuzzer-parse_json.cpp -o $@ From d1735172127c37bfee7a816d96d34647cfff6494 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Mon, 2 Jan 2017 09:21:26 +0100 Subject: [PATCH 09/15] :lipstick: clean up --- src/json.hpp | 9 +++++++++ src/json.hpp.re2c | 9 +++++++++ test/src/unit-allocator.cpp | 20 ++++++++++++++++---- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/json.hpp b/src/json.hpp index 5dc8e67c..afa35baa 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -873,8 +873,17 @@ class basic_json break; } + case value_t::null: + { + break; + } + default: { + if (t == value_t::null) + { + throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21"); // LCOV_EXCL_LINE + } break; } } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 49bccb02..db0b4c88 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -873,8 +873,17 @@ class basic_json break; } + case value_t::null: + { + break; + } + default: { + if (t == value_t::null) + { + throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21"); // LCOV_EXCL_LINE + } break; } } diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp index c439c1c3..04f6ac9d 100644 --- a/test/src/unit-allocator.cpp +++ b/test/src/unit-allocator.cpp @@ -141,7 +141,10 @@ TEST_CASE("controlled bad_alloc") { next_construct_fails = false; auto t = my_json::value_t::object; - auto clean_up = [](my_json::json_value& j){ my_allocator_clean_up(j.object); }; + auto clean_up = [](my_json::json_value & j) + { + my_allocator_clean_up(j.object); + }; CHECK_NOTHROW(my_json::json_value j(t); clean_up(j)); next_construct_fails = true; CHECK_THROWS_AS(my_json::json_value j(t), std::bad_alloc); @@ -151,7 +154,10 @@ TEST_CASE("controlled bad_alloc") { next_construct_fails = false; auto t = my_json::value_t::array; - auto clean_up = [](my_json::json_value& j){ my_allocator_clean_up(j.array); }; + auto clean_up = [](my_json::json_value & j) + { + my_allocator_clean_up(j.array); + }; CHECK_NOTHROW(my_json::json_value j(t); clean_up(j)); next_construct_fails = true; CHECK_THROWS_AS(my_json::json_value j(t), std::bad_alloc); @@ -161,7 +167,10 @@ TEST_CASE("controlled bad_alloc") { next_construct_fails = false; auto t = my_json::value_t::string; - auto clean_up = [](my_json::json_value& j){ my_allocator_clean_up(j.string); }; + auto clean_up = [](my_json::json_value & j) + { + my_allocator_clean_up(j.string); + }; CHECK_NOTHROW(my_json::json_value j(t); clean_up(j)); next_construct_fails = true; CHECK_THROWS_AS(my_json::json_value j(t), std::bad_alloc); @@ -173,7 +182,10 @@ TEST_CASE("controlled bad_alloc") { next_construct_fails = false; my_json::string_t v("foo"); - auto clean_up = [](my_json::json_value& j){ my_allocator_clean_up(j.string); }; + auto clean_up = [](my_json::json_value & j) + { + my_allocator_clean_up(j.string); + }; CHECK_NOTHROW(my_json::json_value j(v); clean_up(j)); next_construct_fails = true; CHECK_THROWS_AS(my_json::json_value j(v), std::bad_alloc); From 60b3703c62bdc3740ca7564bd8c28abb5337a2b4 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Mon, 2 Jan 2017 09:35:57 +0100 Subject: [PATCH 10/15] :bookmark: version bump to 2.0.10 --- CMakeLists.txt | 2 +- doc/Doxyfile | 2 +- doc/index.md | 2 +- src/json.hpp | 4 ++-- src/json.hpp.re2c | 4 ++-- test/src/fuzzer-driver_afl.cpp | 2 +- test/src/fuzzer-parse_cbor.cpp | 2 +- test/src/fuzzer-parse_json.cpp | 2 +- test/src/fuzzer-parse_msgpack.cpp | 2 +- test/src/unit-algorithms.cpp | 2 +- test/src/unit-allocator.cpp | 2 +- test/src/unit-capacity.cpp | 2 +- test/src/unit-cbor.cpp | 2 +- test/src/unit-class_const_iterator.cpp | 2 +- test/src/unit-class_iterator.cpp | 2 +- test/src/unit-class_lexer.cpp | 2 +- test/src/unit-class_parser.cpp | 2 +- test/src/unit-comparison.cpp | 2 +- test/src/unit-concepts.cpp | 2 +- test/src/unit-constructor1.cpp | 2 +- test/src/unit-constructor2.cpp | 2 +- test/src/unit-convenience.cpp | 2 +- test/src/unit-conversions.cpp | 2 +- test/src/unit-deserialization.cpp | 2 +- test/src/unit-element_access1.cpp | 2 +- test/src/unit-element_access2.cpp | 2 +- test/src/unit-inspection.cpp | 2 +- test/src/unit-iterator_wrapper.cpp | 2 +- test/src/unit-iterators1.cpp | 2 +- test/src/unit-iterators2.cpp | 2 +- test/src/unit-json_patch.cpp | 2 +- test/src/unit-json_pointer.cpp | 2 +- test/src/unit-modifiers.cpp | 2 +- test/src/unit-msgpack.cpp | 2 +- test/src/unit-pointer_access.cpp | 2 +- test/src/unit-readme.cpp | 2 +- test/src/unit-reference_access.cpp | 2 +- test/src/unit-regression.cpp | 2 +- test/src/unit-serialization.cpp | 2 +- test/src/unit-testsuites.cpp | 2 +- test/src/unit-unicode.cpp | 2 +- test/src/unit.cpp | 2 +- 42 files changed, 44 insertions(+), 44 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 80770367..9f9931c4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.0) # define the project -project(nlohmann_json VERSION 2.0.9 LANGUAGES CXX) +project(nlohmann_json VERSION 2.0.10 LANGUAGES CXX) enable_testing() diff --git a/doc/Doxyfile b/doc/Doxyfile index 17c81d8b..5064a0a0 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -5,7 +5,7 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = "JSON for Modern C++" -PROJECT_NUMBER = 2.0.9 +PROJECT_NUMBER = 2.0.10 PROJECT_BRIEF = PROJECT_LOGO = OUTPUT_DIRECTORY = . diff --git a/doc/index.md b/doc/index.md index 8292fe65..cc5cd793 100644 --- a/doc/index.md +++ b/doc/index.md @@ -277,4 +277,4 @@ The container functions known from STL have been extended to support the differe @author [Niels Lohmann](http://nlohmann.me) @see https://github.com/nlohmann/json to download the source code -@version 2.0.9 +@version 2.0.10 diff --git a/src/json.hpp b/src/json.hpp index afa35baa..471b9ec7 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . @@ -882,7 +882,7 @@ class basic_json { if (t == value_t::null) { - throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21"); // LCOV_EXCL_LINE + throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10"); // LCOV_EXCL_LINE } break; } diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index db0b4c88..9a7c2043 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . @@ -882,7 +882,7 @@ class basic_json { if (t == value_t::null) { - throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21"); // LCOV_EXCL_LINE + throw std::domain_error("961c151d2e87f2686a955a9be24d316f1362bf21 2.0.10"); // LCOV_EXCL_LINE } break; } diff --git a/test/src/fuzzer-driver_afl.cpp b/test/src/fuzzer-driver_afl.cpp index eddeae41..0c173b45 100644 --- a/test/src/fuzzer-driver_afl.cpp +++ b/test/src/fuzzer-driver_afl.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (fuzz test support) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json This file implements a driver for American Fuzzy Lop (afl-fuzz). It relies on diff --git a/test/src/fuzzer-parse_cbor.cpp b/test/src/fuzzer-parse_cbor.cpp index 42ce679c..bba56747 100644 --- a/test/src/fuzzer-parse_cbor.cpp +++ b/test/src/fuzzer-parse_cbor.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (fuzz test support) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json This file implements a parser test suitable for fuzz testing. Given a byte diff --git a/test/src/fuzzer-parse_json.cpp b/test/src/fuzzer-parse_json.cpp index 51ac440d..f61df56d 100644 --- a/test/src/fuzzer-parse_json.cpp +++ b/test/src/fuzzer-parse_json.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (fuzz test support) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json This file implements a parser test suitable for fuzz testing. Given a byte diff --git a/test/src/fuzzer-parse_msgpack.cpp b/test/src/fuzzer-parse_msgpack.cpp index 992697c2..0355db3b 100644 --- a/test/src/fuzzer-parse_msgpack.cpp +++ b/test/src/fuzzer-parse_msgpack.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (fuzz test support) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json This file implements a parser test suitable for fuzz testing. Given a byte diff --git a/test/src/unit-algorithms.cpp b/test/src/unit-algorithms.cpp index 31be6556..04704847 100644 --- a/test/src/unit-algorithms.cpp +++ b/test/src/unit-algorithms.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp index 04f6ac9d..00eb5b9a 100644 --- a/test/src/unit-allocator.cpp +++ b/test/src/unit-allocator.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-capacity.cpp b/test/src/unit-capacity.cpp index 7fc3d49c..4664f1bf 100644 --- a/test/src/unit-capacity.cpp +++ b/test/src/unit-capacity.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-cbor.cpp b/test/src/unit-cbor.cpp index 49a54999..d01019d9 100644 --- a/test/src/unit-cbor.cpp +++ b/test/src/unit-cbor.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-class_const_iterator.cpp b/test/src/unit-class_const_iterator.cpp index 2970b865..2097e830 100644 --- a/test/src/unit-class_const_iterator.cpp +++ b/test/src/unit-class_const_iterator.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-class_iterator.cpp b/test/src/unit-class_iterator.cpp index 14c6828b..bd64cbf8 100644 --- a/test/src/unit-class_iterator.cpp +++ b/test/src/unit-class_iterator.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp index 6dec3f82..5656942f 100644 --- a/test/src/unit-class_lexer.cpp +++ b/test/src/unit-class_lexer.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-class_parser.cpp b/test/src/unit-class_parser.cpp index 7bf23d50..3e11d80c 100644 --- a/test/src/unit-class_parser.cpp +++ b/test/src/unit-class_parser.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-comparison.cpp b/test/src/unit-comparison.cpp index 73c31abc..81c3066d 100644 --- a/test/src/unit-comparison.cpp +++ b/test/src/unit-comparison.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-concepts.cpp b/test/src/unit-concepts.cpp index dea6b510..cf60b5c1 100644 --- a/test/src/unit-concepts.cpp +++ b/test/src/unit-concepts.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-constructor1.cpp b/test/src/unit-constructor1.cpp index 23c0db38..114ae5b3 100644 --- a/test/src/unit-constructor1.cpp +++ b/test/src/unit-constructor1.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-constructor2.cpp b/test/src/unit-constructor2.cpp index 0bbd13cf..ae5ba3b7 100644 --- a/test/src/unit-constructor2.cpp +++ b/test/src/unit-constructor2.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-convenience.cpp b/test/src/unit-convenience.cpp index 94341be1..1aedea44 100644 --- a/test/src/unit-convenience.cpp +++ b/test/src/unit-convenience.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp index 72c3bf60..77d476bd 100644 --- a/test/src/unit-conversions.cpp +++ b/test/src/unit-conversions.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-deserialization.cpp b/test/src/unit-deserialization.cpp index 605c596b..f0cf2e15 100644 --- a/test/src/unit-deserialization.cpp +++ b/test/src/unit-deserialization.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-element_access1.cpp b/test/src/unit-element_access1.cpp index 0a1715e7..04265244 100644 --- a/test/src/unit-element_access1.cpp +++ b/test/src/unit-element_access1.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-element_access2.cpp b/test/src/unit-element_access2.cpp index 29be17a1..f2758a59 100644 --- a/test/src/unit-element_access2.cpp +++ b/test/src/unit-element_access2.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-inspection.cpp b/test/src/unit-inspection.cpp index 1660c719..1051d2f5 100644 --- a/test/src/unit-inspection.cpp +++ b/test/src/unit-inspection.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-iterator_wrapper.cpp b/test/src/unit-iterator_wrapper.cpp index 96928eb4..784fa77a 100644 --- a/test/src/unit-iterator_wrapper.cpp +++ b/test/src/unit-iterator_wrapper.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-iterators1.cpp b/test/src/unit-iterators1.cpp index 60f7c2fa..bf14435b 100644 --- a/test/src/unit-iterators1.cpp +++ b/test/src/unit-iterators1.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-iterators2.cpp b/test/src/unit-iterators2.cpp index da0fc937..5c04826d 100644 --- a/test/src/unit-iterators2.cpp +++ b/test/src/unit-iterators2.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-json_patch.cpp b/test/src/unit-json_patch.cpp index 880bc46d..4983aab2 100644 --- a/test/src/unit-json_patch.cpp +++ b/test/src/unit-json_patch.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-json_pointer.cpp b/test/src/unit-json_pointer.cpp index 91d003ab..4268c3c0 100644 --- a/test/src/unit-json_pointer.cpp +++ b/test/src/unit-json_pointer.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-modifiers.cpp b/test/src/unit-modifiers.cpp index 02ffa6a5..2db3f291 100644 --- a/test/src/unit-modifiers.cpp +++ b/test/src/unit-modifiers.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-msgpack.cpp b/test/src/unit-msgpack.cpp index 46997e27..eab4dcac 100644 --- a/test/src/unit-msgpack.cpp +++ b/test/src/unit-msgpack.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-pointer_access.cpp b/test/src/unit-pointer_access.cpp index e1c9caab..f5d934d3 100644 --- a/test/src/unit-pointer_access.cpp +++ b/test/src/unit-pointer_access.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-readme.cpp b/test/src/unit-readme.cpp index 92b13222..bddcd0d6 100644 --- a/test/src/unit-readme.cpp +++ b/test/src/unit-readme.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-reference_access.cpp b/test/src/unit-reference_access.cpp index 4a8047f8..321907a5 100644 --- a/test/src/unit-reference_access.cpp +++ b/test/src/unit-reference_access.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp index 89b27e0e..0bfdc91a 100644 --- a/test/src/unit-regression.cpp +++ b/test/src/unit-regression.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-serialization.cpp b/test/src/unit-serialization.cpp index 8385a4a4..3375a1c4 100644 --- a/test/src/unit-serialization.cpp +++ b/test/src/unit-serialization.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-testsuites.cpp b/test/src/unit-testsuites.cpp index 92b6e5aa..dfc75936 100644 --- a/test/src/unit-testsuites.cpp +++ b/test/src/unit-testsuites.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit-unicode.cpp b/test/src/unit-unicode.cpp index 4cb51e21..69f4a9ee 100644 --- a/test/src/unit-unicode.cpp +++ b/test/src/unit-unicode.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . diff --git a/test/src/unit.cpp b/test/src/unit.cpp index 1a278868..e7a7a799 100644 --- a/test/src/unit.cpp +++ b/test/src/unit.cpp @@ -1,7 +1,7 @@ /* __ _____ _____ _____ __| | __| | | | JSON for Modern C++ (test suite) -| | |__ | | | | | | version 2.0.9 +| | |__ | | | | | | version 2.0.10 |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . From 6a207900562cededec7189c548c86743c65902cd Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Mon, 2 Jan 2017 09:36:30 +0100 Subject: [PATCH 11/15] :memo: updated test count --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 06dca7ff..a0534615 100644 --- a/README.md +++ b/README.md @@ -610,7 +610,7 @@ To compile and run the tests, you need to execute $ make check =============================================================================== -All tests passed (11201893 assertions in 43 test cases) +All tests passed (11202040 assertions in 44 test cases) ``` Alternatively, you can use [CMake](https://cmake.org) and run From 8b46eb8ec0abd05535520fc25e2bdbd3a2c71820 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Mon, 2 Jan 2017 09:40:00 +0100 Subject: [PATCH 12/15] :page_facing_up: it's 2017 already --- LICENSE.MIT | 2 +- doc/index.md | 2 +- src/json.hpp | 2 +- src/json.hpp.re2c | 2 +- test/src/unit-algorithms.cpp | 2 +- test/src/unit-allocator.cpp | 2 +- test/src/unit-capacity.cpp | 2 +- test/src/unit-cbor.cpp | 2 +- test/src/unit-class_const_iterator.cpp | 2 +- test/src/unit-class_iterator.cpp | 2 +- test/src/unit-class_lexer.cpp | 2 +- test/src/unit-class_parser.cpp | 2 +- test/src/unit-comparison.cpp | 2 +- test/src/unit-concepts.cpp | 2 +- test/src/unit-constructor1.cpp | 2 +- test/src/unit-constructor2.cpp | 2 +- test/src/unit-convenience.cpp | 2 +- test/src/unit-conversions.cpp | 2 +- test/src/unit-deserialization.cpp | 2 +- test/src/unit-element_access1.cpp | 2 +- test/src/unit-element_access2.cpp | 2 +- test/src/unit-inspection.cpp | 2 +- test/src/unit-iterator_wrapper.cpp | 2 +- test/src/unit-iterators1.cpp | 2 +- test/src/unit-iterators2.cpp | 2 +- test/src/unit-json_patch.cpp | 2 +- test/src/unit-json_pointer.cpp | 2 +- test/src/unit-modifiers.cpp | 2 +- test/src/unit-msgpack.cpp | 2 +- test/src/unit-pointer_access.cpp | 2 +- test/src/unit-readme.cpp | 2 +- test/src/unit-reference_access.cpp | 2 +- test/src/unit-regression.cpp | 2 +- test/src/unit-serialization.cpp | 2 +- test/src/unit-testsuites.cpp | 2 +- test/src/unit-unicode.cpp | 2 +- test/src/unit.cpp | 2 +- 37 files changed, 37 insertions(+), 37 deletions(-) diff --git a/LICENSE.MIT b/LICENSE.MIT index 79145efa..c4ce40d1 100644 --- a/LICENSE.MIT +++ b/LICENSE.MIT @@ -1,7 +1,7 @@ JSON for Modern C++ is licensed under the MIT License : -Copyright (c) 2013-2016 Niels Lohmann +Copyright (c) 2013-2017 Niels Lohmann Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/doc/index.md b/doc/index.md index cc5cd793..f7ef3554 100644 --- a/doc/index.md +++ b/doc/index.md @@ -272,7 +272,7 @@ The container functions known from STL have been extended to support the differe -@copyright Copyright © 2013-2016 Niels Lohmann. The code is licensed under the [MIT License](http://opensource.org/licenses/MIT). +@copyright Copyright © 2013-2017 Niels Lohmann. The code is licensed under the [MIT License](http://opensource.org/licenses/MIT). @author [Niels Lohmann](http://nlohmann.me) @see https://github.com/nlohmann/json to download the source code diff --git a/src/json.hpp b/src/json.hpp index 471b9ec7..9d48e7a6 100644 --- a/src/json.hpp +++ b/src/json.hpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c index 9a7c2043..e1a43b54 100644 --- a/src/json.hpp.re2c +++ b/src/json.hpp.re2c @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-algorithms.cpp b/test/src/unit-algorithms.cpp index 04704847..0905d05e 100644 --- a/test/src/unit-algorithms.cpp +++ b/test/src/unit-algorithms.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-allocator.cpp b/test/src/unit-allocator.cpp index 00eb5b9a..f11d8538 100644 --- a/test/src/unit-allocator.cpp +++ b/test/src/unit-allocator.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-capacity.cpp b/test/src/unit-capacity.cpp index 4664f1bf..d3ee33d2 100644 --- a/test/src/unit-capacity.cpp +++ b/test/src/unit-capacity.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-cbor.cpp b/test/src/unit-cbor.cpp index d01019d9..92238b79 100644 --- a/test/src/unit-cbor.cpp +++ b/test/src/unit-cbor.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-class_const_iterator.cpp b/test/src/unit-class_const_iterator.cpp index 2097e830..13ce7c3f 100644 --- a/test/src/unit-class_const_iterator.cpp +++ b/test/src/unit-class_const_iterator.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-class_iterator.cpp b/test/src/unit-class_iterator.cpp index bd64cbf8..640bc816 100644 --- a/test/src/unit-class_iterator.cpp +++ b/test/src/unit-class_iterator.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-class_lexer.cpp b/test/src/unit-class_lexer.cpp index 5656942f..33ea610a 100644 --- a/test/src/unit-class_lexer.cpp +++ b/test/src/unit-class_lexer.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-class_parser.cpp b/test/src/unit-class_parser.cpp index 3e11d80c..09515042 100644 --- a/test/src/unit-class_parser.cpp +++ b/test/src/unit-class_parser.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-comparison.cpp b/test/src/unit-comparison.cpp index 81c3066d..7f89729e 100644 --- a/test/src/unit-comparison.cpp +++ b/test/src/unit-comparison.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-concepts.cpp b/test/src/unit-concepts.cpp index cf60b5c1..1c04b62b 100644 --- a/test/src/unit-concepts.cpp +++ b/test/src/unit-concepts.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-constructor1.cpp b/test/src/unit-constructor1.cpp index 114ae5b3..6bfb4402 100644 --- a/test/src/unit-constructor1.cpp +++ b/test/src/unit-constructor1.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-constructor2.cpp b/test/src/unit-constructor2.cpp index ae5ba3b7..ab1e43cc 100644 --- a/test/src/unit-constructor2.cpp +++ b/test/src/unit-constructor2.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-convenience.cpp b/test/src/unit-convenience.cpp index 1aedea44..cd78f83a 100644 --- a/test/src/unit-convenience.cpp +++ b/test/src/unit-convenience.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-conversions.cpp b/test/src/unit-conversions.cpp index 77d476bd..b82127bb 100644 --- a/test/src/unit-conversions.cpp +++ b/test/src/unit-conversions.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-deserialization.cpp b/test/src/unit-deserialization.cpp index f0cf2e15..21e3bb44 100644 --- a/test/src/unit-deserialization.cpp +++ b/test/src/unit-deserialization.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-element_access1.cpp b/test/src/unit-element_access1.cpp index 04265244..a596ac21 100644 --- a/test/src/unit-element_access1.cpp +++ b/test/src/unit-element_access1.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-element_access2.cpp b/test/src/unit-element_access2.cpp index f2758a59..1ba6aa61 100644 --- a/test/src/unit-element_access2.cpp +++ b/test/src/unit-element_access2.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-inspection.cpp b/test/src/unit-inspection.cpp index 1051d2f5..9e114718 100644 --- a/test/src/unit-inspection.cpp +++ b/test/src/unit-inspection.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-iterator_wrapper.cpp b/test/src/unit-iterator_wrapper.cpp index 784fa77a..f4255f99 100644 --- a/test/src/unit-iterator_wrapper.cpp +++ b/test/src/unit-iterator_wrapper.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-iterators1.cpp b/test/src/unit-iterators1.cpp index bf14435b..a6fd2df9 100644 --- a/test/src/unit-iterators1.cpp +++ b/test/src/unit-iterators1.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-iterators2.cpp b/test/src/unit-iterators2.cpp index 5c04826d..6f1b6251 100644 --- a/test/src/unit-iterators2.cpp +++ b/test/src/unit-iterators2.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-json_patch.cpp b/test/src/unit-json_patch.cpp index 4983aab2..b7987509 100644 --- a/test/src/unit-json_patch.cpp +++ b/test/src/unit-json_patch.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-json_pointer.cpp b/test/src/unit-json_pointer.cpp index 4268c3c0..67257943 100644 --- a/test/src/unit-json_pointer.cpp +++ b/test/src/unit-json_pointer.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-modifiers.cpp b/test/src/unit-modifiers.cpp index 2db3f291..3e8d9600 100644 --- a/test/src/unit-modifiers.cpp +++ b/test/src/unit-modifiers.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-msgpack.cpp b/test/src/unit-msgpack.cpp index eab4dcac..89fa450d 100644 --- a/test/src/unit-msgpack.cpp +++ b/test/src/unit-msgpack.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-pointer_access.cpp b/test/src/unit-pointer_access.cpp index f5d934d3..4771c508 100644 --- a/test/src/unit-pointer_access.cpp +++ b/test/src/unit-pointer_access.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-readme.cpp b/test/src/unit-readme.cpp index bddcd0d6..5c62e850 100644 --- a/test/src/unit-readme.cpp +++ b/test/src/unit-readme.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-reference_access.cpp b/test/src/unit-reference_access.cpp index 321907a5..54db1a86 100644 --- a/test/src/unit-reference_access.cpp +++ b/test/src/unit-reference_access.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp index 0bfdc91a..401867c2 100644 --- a/test/src/unit-regression.cpp +++ b/test/src/unit-regression.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-serialization.cpp b/test/src/unit-serialization.cpp index 3375a1c4..72d9ae6c 100644 --- a/test/src/unit-serialization.cpp +++ b/test/src/unit-serialization.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-testsuites.cpp b/test/src/unit-testsuites.cpp index dfc75936..a43e1997 100644 --- a/test/src/unit-testsuites.cpp +++ b/test/src/unit-testsuites.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit-unicode.cpp b/test/src/unit-unicode.cpp index 69f4a9ee..0b1c0e5e 100644 --- a/test/src/unit-unicode.cpp +++ b/test/src/unit-unicode.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/test/src/unit.cpp b/test/src/unit.cpp index e7a7a799..096a2973 100644 --- a/test/src/unit.cpp +++ b/test/src/unit.cpp @@ -5,7 +5,7 @@ |_____|_____|_____|_|___| https://github.com/nlohmann/json Licensed under the MIT License . -Copyright (c) 2013-2016 Niels Lohmann . +Copyright (c) 2013-2017 Niels Lohmann . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 4d3bf433b45d8f445536f51585ad0644611277f7 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Mon, 2 Jan 2017 09:56:21 +0100 Subject: [PATCH 13/15] :bookmark: updated ChangeLog --- ChangeLog.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index 92545768..ce82d14b 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,6 +1,26 @@ # Change Log All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [v2.0.10](https://github.com/nlohmann/json/releases/tag/v2.0.10) (2017-01-02) +[Full Changelog](https://github.com/nlohmann/json/compare/v2.0.9...v2.0.10) + +- Heap-buffer-overflow \(OSS-Fuzz issue 367\) [\#412](https://github.com/nlohmann/json/issues/412) +- Heap-buffer-overflow \(OSS-Fuzz issue 366\) [\#411](https://github.com/nlohmann/json/issues/411) +- Use-of-uninitialized-value \(OSS-Fuzz issue 347\) [\#409](https://github.com/nlohmann/json/issues/409) +- Heap-buffer-overflow \(OSS-Fuzz issue 344\) [\#408](https://github.com/nlohmann/json/issues/408) +- Heap-buffer-overflow \(OSS-Fuzz issue 343\) [\#407](https://github.com/nlohmann/json/issues/407) +- Heap-buffer-overflow \(OSS-Fuzz issue 342\) [\#405](https://github.com/nlohmann/json/issues/405) +- strerror throwing error in compiler VS2015 [\#403](https://github.com/nlohmann/json/issues/403) +- json::parse of std::string being underlined by Visual Studio [\#402](https://github.com/nlohmann/json/issues/402) +- Explicitly getting string without .dump\(\) [\#401](https://github.com/nlohmann/json/issues/401) +- Possible to speed up json::parse? [\#398](https://github.com/nlohmann/json/issues/398) +- the alphabetic order in the code influence console\_output. [\#396](https://github.com/nlohmann/json/issues/396) +- Execute tests with clang sanitizers [\#394](https://github.com/nlohmann/json/issues/394) +- Check if library can be used with ETL [\#361](https://github.com/nlohmann/json/issues/361) + +- Feature/clang sanitize [\#410](https://github.com/nlohmann/json/pull/410) ([Daniel599](https://github.com/Daniel599)) +- Add Doozer build badge [\#400](https://github.com/nlohmann/json/pull/400) ([andoma](https://github.com/andoma)) + ## [v2.0.9](https://github.com/nlohmann/json/releases/tag/v2.0.9) (2016-12-16) [Full Changelog](https://github.com/nlohmann/json/compare/v2.0.8...v2.0.9) From 69c615e1274ddb8ba07b3ba19eee951946bd5ddb Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Mon, 2 Jan 2017 10:00:44 +0100 Subject: [PATCH 14/15] :bookmark: version bump to 2.0.10 --- doc/json.gif | Bin 1325973 -> 1331326 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/json.gif b/doc/json.gif index 7d3bf81645496c9a72e4f187e21a3ce2ba9223ef..efd2ee634a0704653811c31714f7cc1757c02966 100644 GIT binary patch delta 50413 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Ⓢ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�hzIEzI6Z~tJ>Uj>Be6qjLnaY}Ex>Pwe;=0mG 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 Date: Mon, 2 Jan 2017 16:37:29 +0100 Subject: [PATCH 15/15] :memo: updated online link --- README.md | 2 +- doc/examples/README.link | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0534615..498d1bbe 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ [![Build status](https://doozer.io/badge/nlohmann/json/buildstatus/develop)](https://doozer.io/user/nlohmann/json) [![Coverage Status](https://img.shields.io/coveralls/nlohmann/json.svg)](https://coveralls.io/r/nlohmann/json) [![Coverity Scan Build Status](https://scan.coverity.com/projects/5550/badge.svg)](https://scan.coverity.com/projects/nlohmann-json) -[![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/8soFCqS532vOyZcK) +[![Try online](https://img.shields.io/badge/try-online-blue.svg)](http://melpon.org/wandbox/permlink/IoZNMHqubixQx2dN) [![Documentation](https://img.shields.io/badge/docs-doxygen-blue.svg)](http://nlohmann.github.io/json) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/nlohmann/json/master/LICENSE.MIT) [![Github Releases](https://img.shields.io/github/release/nlohmann/json.svg)](https://github.com/nlohmann/json/releases) diff --git a/doc/examples/README.link b/doc/examples/README.link index 128ab1dc..58daac88 100644 --- a/doc/examples/README.link +++ b/doc/examples/README.link @@ -1 +1 @@ -online \ No newline at end of file +online \ No newline at end of file