Fuzz introspector: jsoncpp_fuzzer
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 19 3 :

['Json::throwRuntimeError(std::__1::basic_string , std::__1::allocator > const&)', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne180100ILi0EEEPKc', 'std::__1::basic_string , std::__1::allocator >::~basic_string()']

0 19 Json::duplicateStringValue(charconst*,unsignedlong) call site: 00000 /src/jsoncpp/src/lib_json/json_value.cpp:128
0 19 3 :

['Json::throwRuntimeError(std::__1::basic_string , std::__1::allocator > const&)', '_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEC2B8ne180100ILi0EEEPKc', 'std::__1::basic_string , std::__1::allocator >::~basic_string()']

0 19 Json::duplicateAndPrefixStringValue(charconst*,unsignedint) call site: 00000 /src/jsoncpp/src/lib_json/json_value.cpp:149
0 0 None 8 1021 Json::OurReader::parse(charconst*,charconst*,Json::Value&,bool) call site: 00000 /src/jsoncpp/src/lib_json/json_reader.cpp:983
0 0 None 0 207 Json::OurReader::readObject(Json::OurReader::Token&) call site: 00000 /src/jsoncpp/src/lib_json/json_reader.cpp:1442
0 0 None 0 40 Json::OurReader::decodeDouble(Json::OurReader::Token&,Json::Value&) call site: 00000 /src/jsoncpp/src/lib_json/json_reader.cpp:1615
0 0 1 :

['std::__1::numeric_limits ::infinity[abi:ne180100]()']

0 40 Json::OurReader::decodeDouble(Json::OurReader::Token&,Json::Value&) call site: 00000 /src/jsoncpp/src/lib_json/json_reader.cpp:1617
0 0 None 0 39 Json::OurReader::readObject(Json::OurReader::Token&) call site: 00000 /src/jsoncpp/src/lib_json/json_reader.cpp:1440
0 0 None 0 17 Json::OurReader::readValue() call site: 00000 /src/jsoncpp/src/lib_json/json_reader.cpp:1094
0 0 None 0 12 Json::Value::operator[](unsignedint) call site: 00000 /src/jsoncpp/src/lib_json/json_value.cpp:967
0 0 None 0 9 Json::OurReader::decodeString(Json::OurReader::Token&,std::__1::basic_string ,std::__1::allocator >&) call site: 00000 /src/jsoncpp/src/lib_json/json_reader.cpp:1647
0 0 None 0 0 Json::OurReader::readToken(Json::OurReader::Token&) call site: 00000 /src/jsoncpp/src/lib_json/json_reader.cpp:1152
0 0 None 0 0 Json::OurReader::readToken(Json::OurReader::Token&) call site: 00000 /src/jsoncpp/src/lib_json/json_reader.cpp:1206

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 Json::CharReaderBuilder::CharReaderBuilder() [function] [call site] 00001
2 Json::CharReader::Factory::Factory() [function] [call site] 00002
2 Json::Value::Value(Json::ValueType) [function] [call site] 00003
3 Json::Value::Comments::Comments() [function] [call site] 00004
3 Json::Value::initBasic(Json::ValueType, bool) [function] [call site] 00005
4 Json::Value::setType(Json::ValueType) [function] [call site] 00006
4 Json::Value::setIsAllocated(bool) [function] [call site] 00007
4 Json::Value::Comments::Comments() [function] [call site] 00008
4 Json::Value::Comments::operator=(Json::Value::Comments&&) [function] [call site] 00009
4 Json::Value::Comments::~Comments() [function] [call site] 00010
3 Json::Value::Comments::~Comments() [function] [call site] 00011
2 Json::CharReaderBuilder::setDefaults(Json::Value*) [function] [call site] 00012
3 Json::Value::Value(bool) [function] [call site] 00013
4 Json::Value::Comments::Comments() [function] [call site] 00014
4 Json::Value::initBasic(Json::ValueType, bool) [function] [call site] 00015
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00016
4 Json::Value::resolveReference(char const*, char const*) [function] [call site] 00017
5 Json::Value::type() const [function] [call site] 00018
5 Json::throwLogicError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00019
6 __cxa_allocate_exception [call site] 00020
6 Json::LogicError::LogicError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00021
7 Json::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00022
8 std::exception::exception[abi:ne180100]() [function] [call site] 00023
6 __cxa_throw [call site] 00024
6 Json::Exception::~Exception() [function] [call site] 00025
7 std::exception::~exception() [call site] 00026
6 __cxa_free_exception [call site] 00027
5 Json::Value::Value(Json::ValueType) [function] [call site] 00028
5 Json::Value::operator=(Json::Value&&) [function] [call site] 00029
6 Json::Value::swap(Json::Value&) [function] [call site] 00030
7 Json::Value::swapPayload(Json::Value&) [function] [call site] 00031
5 Json::Value::~Value() [function] [call site] 00032
6 Json::Value::releasePayload() [function] [call site] 00033
7 Json::Value::type() const [function] [call site] 00034
7 Json::Value::isAllocated() const [function] [call site] 00035
7 Json::releasePrefixedStringValue(char*) [function] [call site] 00036
6 Json::Value::Comments::~Comments() [function] [call site] 00037
6 __clang_call_terminate [call site] 00038
7 __cxa_begin_catch [call site] 00039
5 Json::Value::CZString::CZString(char const*, unsigned int, Json::Value::CZString::DuplicationPolicy) [function] [call site] 00040
5 Json::Value::CZString::operator==(Json::Value::CZString const&) const [function] [call site] 00041
6 Json::throwLogicError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00042
6 memcmp [call site] 00043
5 Json::Value::nullSingleton() [function] [call site] 00044
6 __cxa_guard_acquire [call site] 00045
6 Json::Value::Value(Json::ValueType) [function] [call site] 00046
6 __cxa_atexit [call site] 00047
6 Json::Value::~Value() [function] [call site] 00048
6 __cxa_guard_release [call site] 00049
6 __cxa_guard_abort [call site] 00050
5 Json::Value::CZString::~CZString() [function] [call site] 00051
6 Json::releaseStringValue(char*, unsigned int) [function] [call site] 00052
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00053
3 Json::Value::~Value() [function] [call site] 00054
3 Json::Value::Value(bool) [function] [call site] 00055
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00056
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00057
3 Json::Value::~Value() [function] [call site] 00058
3 Json::Value::Value(bool) [function] [call site] 00059
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00060
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00061
3 Json::Value::~Value() [function] [call site] 00062
3 Json::Value::Value(bool) [function] [call site] 00063
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00064
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00065
3 Json::Value::~Value() [function] [call site] 00066
3 Json::Value::Value(bool) [function] [call site] 00067
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00068
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00069
3 Json::Value::~Value() [function] [call site] 00070
3 Json::Value::Value(bool) [function] [call site] 00071
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00072
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00073
3 Json::Value::~Value() [function] [call site] 00074
3 Json::Value::Value(bool) [function] [call site] 00075
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00076
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00077
3 Json::Value::~Value() [function] [call site] 00078
3 Json::Value::Value(int) [function] [call site] 00079
4 Json::Value::Comments::Comments() [function] [call site] 00080
4 Json::Value::initBasic(Json::ValueType, bool) [function] [call site] 00081
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00082
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00083
3 Json::Value::~Value() [function] [call site] 00084
3 Json::Value::Value(bool) [function] [call site] 00085
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00086
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00087
3 Json::Value::~Value() [function] [call site] 00088
3 Json::Value::Value(bool) [function] [call site] 00089
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00090
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00091
3 Json::Value::~Value() [function] [call site] 00092
3 Json::Value::Value(bool) [function] [call site] 00093
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00094
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00095
3 Json::Value::~Value() [function] [call site] 00096
3 Json::Value::Value(bool) [function] [call site] 00097
3 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00098
3 Json::Value::operator=(Json::Value&&) [function] [call site] 00099
3 Json::Value::~Value() [function] [call site] 00100
2 Json::Value::~Value() [function] [call site] 00101
2 Json::CharReader::Factory::~Factory() [function] [call site] 00102
1 Json::Value::Value(unsigned int) [function] [call site] 00103
2 Json::Value::Comments::Comments() [function] [call site] 00104
2 Json::Value::initBasic(Json::ValueType, bool) [function] [call site] 00105
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00106
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00107
1 Json::Value::~Value() [function] [call site] 00108
1 Json::Value::Value(unsigned int) [function] [call site] 00109
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00110
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00111
1 Json::Value::~Value() [function] [call site] 00112
1 Json::Value::Value(unsigned int) [function] [call site] 00113
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00114
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00115
1 Json::Value::~Value() [function] [call site] 00116
1 Json::Value::Value(unsigned int) [function] [call site] 00117
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00118
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00119
1 Json::Value::~Value() [function] [call site] 00120
1 Json::Value::Value(unsigned int) [function] [call site] 00121
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00122
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00123
1 Json::Value::~Value() [function] [call site] 00124
1 Json::Value::Value(unsigned int) [function] [call site] 00125
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00126
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00127
1 Json::Value::~Value() [function] [call site] 00128
1 Json::Value::Value(unsigned int) [function] [call site] 00129
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00130
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00131
1 Json::Value::~Value() [function] [call site] 00132
1 Json::Value::Value(unsigned int) [function] [call site] 00133
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00134
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00135
1 Json::Value::~Value() [function] [call site] 00136
1 Json::Value::Value(unsigned int) [function] [call site] 00137
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00138
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00139
1 Json::Value::~Value() [function] [call site] 00140
1 Json::Value::Value(unsigned int) [function] [call site] 00141
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00142
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00143
1 Json::Value::~Value() [function] [call site] 00144
1 Json::Value::Value(unsigned int) [function] [call site] 00145
1 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00146
1 Json::Value::operator=(Json::Value&&) [function] [call site] 00147
1 Json::Value::~Value() [function] [call site] 00148
1 Json::CharReaderBuilder::newCharReader() const [function] [call site] 00149
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00150
3 Json::Value::find(char const*, char const*) const [function] [call site] 00151
4 Json::Value::type() const [function] [call site] 00152
4 Json::throwLogicError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00153
4 Json::Value::CZString::CZString(char const*, unsigned int, Json::Value::CZString::DuplicationPolicy) [function] [call site] 00154
4 Json::Value::CZString::~CZString() [function] [call site] 00155
3 Json::Value::nullSingleton() [function] [call site] 00156
2 Json::Value::asBool() const [function] [call site] 00157
3 Json::Value::type() const [function] [call site] 00158
3 Json::throwLogicError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00159
2 Json::OurFeatures::all() [function] [call site] 00160
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00161
2 Json::Value::asBool() const [function] [call site] 00162
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00163
2 Json::Value::asBool() const [function] [call site] 00164
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00165
2 Json::Value::asBool() const [function] [call site] 00166
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00167
2 Json::Value::asBool() const [function] [call site] 00168
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00169
2 Json::Value::asBool() const [function] [call site] 00170
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00171
2 Json::Value::asBool() const [function] [call site] 00172
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00173
2 Json::Value::asUInt() const [function] [call site] 00174
3 Json::Value::type() const [function] [call site] 00175
3 Json::Value::isUInt() const [function] [call site] 00176
4 Json::Value::type() const [function] [call site] 00177
4 Json::IsIntegral(double) [function] [call site] 00178
5 modf [call site] 00179
3 Json::throwLogicError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00180
3 Json::Value::isUInt() const [function] [call site] 00181
3 Json::throwLogicError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00182
3 bool Json::InRange<unsigned int, unsigned int>(double, unsigned int, unsigned int) [function] [call site] 00183
4 double Json::integerToDouble<unsigned int>(unsigned int) [function] [call site] 00184
3 Json::throwLogicError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00185
3 Json::throwLogicError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00186
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00187
2 Json::Value::asBool() const [function] [call site] 00188
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00189
2 Json::Value::asBool() const [function] [call site] 00190
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00191
2 Json::Value::asBool() const [function] [call site] 00192
2 Json::Value::operator[](std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00193
2 Json::Value::asBool() const [function] [call site] 00194
2 Json::OurCharReader::OurCharReader(bool, Json::OurFeatures const&) [function] [call site] 00195
3 Json::OurCharReader::OurImpl::OurImpl(bool, Json::OurFeatures const&) [function] [call site] 00196
4 Json::CharReader::Impl::Impl() [function] [call site] 00197
4 Json::OurReader::OurReader(Json::OurFeatures const&) [function] [call site] 00198
3 Json::CharReader::CharReader(std::__1::unique_ptr<Json::CharReader::Impl, std::__1::default_delete<Json::CharReader::Impl> >) [function] [call site] 00199
1 Json::Value::Value(Json::ValueType) [function] [call site] 00200
1 __cxa_begin_catch [call site] 00201
1 __cxa_end_catch [call site] 00202
1 Json::Value::~Value() [function] [call site] 00203
1 Json::CharReaderBuilder::~CharReaderBuilder() [function] [call site] 00204
2 Json::Value::~Value() [function] [call site] 00205
2 Json::CharReader::Factory::~Factory() [function] [call site] 00206