Fuzz introspector: fuzz_mapper
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 4 1 :

['oatpp::data::mapping::type::Void::Void(oatpp::data::mapping::type::Type const*)']

0 4 oatpp::parser::json::mapping::Deserializer::deserializeObject(oatpp::parser::json::mapping::Deserializer*,oatpp::parser::Caret&,oatpp::data::mapping::type::Typeconst*) call site: 00000 /src/oatpp/src/oatpp/parser/json/mapping/Deserializer.cpp:407
0 0 None 109 649 oatpp::parser::json::mapping::Deserializer::deserializeObject(oatpp::parser::json::mapping::Deserializer*,oatpp::parser::Caret&,oatpp::data::mapping::type::Typeconst*) call site: 00000 /src/oatpp/src/oatpp/parser/json/mapping/Deserializer.cpp:441
0 0 None 19 78 oatpp::parser::json::mapping::Deserializer::deserialize(oatpp::parser::Caret&,oatpp::data::mapping::type::Typeconst*) call site: 00000 /src/oatpp/src/oatpp/parser/json/mapping/Deserializer.cpp:495
0 0 None 8 48 oatpp::data::mapping::type::__class::Object ::initProperties() call site: 00000 /src/oatpp/build/../src/oatpp/core/data/mapping/type/Object.hpp:276
0 0 None 0 50 oatpp::parser::json::Utils::calcUnescapedStringSize(charconst*,long,long&,long&) call site: 00000 /src/oatpp/src/oatpp/parser/json/Utils.cpp:108

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 oatpp::data::mapping::type::String::String(char const*, long) [function] [call site] 00001
2 oatpp::data::mapping::type::ObjectWrapper , std::__1::allocator >, oatpp::data::mapping::type::__class::String>::ObjectWrapper(std::__1::shared_ptr , std::__1::allocator > > const&) [function] [call site] 00002
3 oatpp::data::mapping::type::__class::String::getType() [function] [call site] 00003
4 __cxa_guard_acquire [call site] 00004
4 oatpp::data::mapping::type::Type::Info::Info() [function] [call site] 00005
4 oatpp::data::mapping::type::Type::Type(oatpp::data::mapping::type::ClassId const&, oatpp::data::mapping::type::Type::Info const&) [function] [call site] 00006
4 oatpp::data::mapping::type::Type::~Type() [function] [call site] 00007
1 oatpp::parser::json::mapping::ObjectMapper::ObjectMapper(std::__1::shared_ptr const&, std::__1::shared_ptr const&) [function] [call site] 00008
2 oatpp::base::Countable::Countable() [function] [call site] 00009
3 oatpp::base::Environment::incObjects() [function] [call site] 00010
2 oatpp::parser::json::mapping::ObjectMapper::getMapperInfo() [function] [call site] 00011
3 __cxa_guard_acquire [call site] 00012
3 oatpp::data::mapping::ObjectMapper::Info::Info(char const*) [function] [call site] 00013
2 oatpp::data::mapping::ObjectMapper::ObjectMapper(oatpp::data::mapping::ObjectMapper::Info const&) [function] [call site] 00014
2 oatpp::base::Countable::~Countable() [function] [call site] 00015
3 oatpp::base::Environment::decObjects() [function] [call site] 00016
3 __clang_call_terminate [call site] 00017
4 __cxa_begin_catch [call site] 00018
1 oatpp::data::mapping::type::DTOWrapper oatpp::data::mapping::ObjectMapper::readFromString >(oatpp::data::mapping::type::String const&) const [function] [call site] 00019
2 oatpp::data::mapping::type::__class::Object ::getType() [function] [call site] 00020
3 __cxa_guard_acquire [call site] 00021
3 oatpp::data::mapping::type::__class::Object ::createType() [function] [call site] 00022
4 oatpp::data::mapping::type::Type::Info::Info() [function] [call site] 00023
4 Test1::Z__CLASS_TYPE_NAME() [function] [call site] 00024
4 oatpp::data::mapping::type::__class::Object ::PolymorphicDispatcher::PolymorphicDispatcher() [function] [call site] 00025
5 oatpp::data::mapping::type::__class::AbstractObject::PolymorphicDispatcher::PolymorphicDispatcher() [function] [call site] 00026
4 Test1::getParentType() [function] [call site] 00027
5 oatpp::data::mapping::type::__class::Object ::getType() [function] [call site] 00028
4 oatpp::data::mapping::type::Type::Type(oatpp::data::mapping::type::ClassId const&, oatpp::data::mapping::type::Type::Info const&) [function] [call site] 00029
4 oatpp::data::mapping::type::Type::Info::~Info() [function] [call site] 00030
2 oatpp::parser::Caret::Caret(oatpp::data::mapping::type::String const&) [function] [call site] 00031
3 oatpp::data::mapping::type::ObjectWrapper , std::__1::allocator >, oatpp::data::mapping::type::__class::String>::operator->() const [function] [call site] 00032
3 oatpp::parser::Caret::Caret(char const*, long) [function] [call site] 00033
3 oatpp::data::mapping::type::ObjectWrapper , std::__1::allocator >, oatpp::data::mapping::type::__class::String>::getPtr() const [function] [call site] 00034
2 oatpp::data::mapping::type::DTOWrapper oatpp::data::mapping::type::ObjectWrapper ::cast >() const [function] [call site] 00035
3 oatpp::data::mapping::type::__class::Object ::getType() [function] [call site] 00036
3 oatpp::data::mapping::type::Type::extends(oatpp::data::mapping::type::Type const*) const [function] [call site] 00037
3 oatpp::data::mapping::type::__class::Object ::getType() [function] [call site] 00038
3 oatpp::data::mapping::type::__class::Void::getType() [function] [call site] 00039
4 __cxa_guard_acquire [call site] 00040
4 oatpp::data::mapping::type::Type::Info::Info() [function] [call site] 00041
4 oatpp::data::mapping::type::Type::Type(oatpp::data::mapping::type::ClassId const&, oatpp::data::mapping::type::Type::Info const&) [function] [call site] 00042
4 oatpp::data::mapping::type::Type::~Type() [function] [call site] 00043
3 __cxa_allocate_exception [call site] 00044
3 oatpp::data::mapping::type::__class::Object ::getType() [function] [call site] 00045
3 oatpp::data::mapping::type::__class::Object ::getType() [function] [call site] 00046
2 bool oatpp::data::mapping::type::DTOWrapper ::operator== (decltype(nullptr)) [function] [call site] 00047
2 __cxa_allocate_exception [call site] 00048
2 oatpp::parser::Caret::getErrorMessage() [function] [call site] 00049
2 oatpp::data::mapping::type::String::String (char const*) [function] [call site] 00050
3 oatpp::data::mapping::type::ObjectWrapper , std::__1::allocator >, oatpp::data::mapping::type::__class::String>::ObjectWrapper(std::__1::shared_ptr , std::__1::allocator > > const&) [function] [call site] 00051
2 oatpp::parser::ParsingError::ParsingError(oatpp::data::mapping::type::String const&, long, long) [function] [call site] 00052
3 oatpp::data::mapping::type::String::operator*() const [function] [call site] 00053
3 std::runtime_error::runtime_error(std::__1::basic_string , std::__1::allocator > const&) [call site] 00054
3 oatpp::data::mapping::type::String::String(oatpp::data::mapping::type::String const&) [function] [call site] 00055
4 oatpp::data::mapping::type::ObjectWrapper , std::__1::allocator >, oatpp::data::mapping::type::__class::String>::ObjectWrapper(oatpp::data::mapping::type::ObjectWrapper , std::__1::allocator >, oatpp::data::mapping::type::__class::String> const&) [function] [call site] 00056
2 oatpp::data::mapping::type::ObjectWrapper , std::__1::allocator >, oatpp::data::mapping::type::__class::String>::~ObjectWrapper() [function] [call site] 00057
2 oatpp::parser::Caret::~Caret() [function] [call site] 00058
2 oatpp::data::mapping::type::ObjectWrapper >::~ObjectWrapper() [function] [call site] 00059
1 oatpp::data::mapping::type::ObjectWrapper >::~ObjectWrapper() [function] [call site] 00060
1 __cxa_begin_catch [call site] 00061
1 oatpp::parser::json::mapping::ObjectMapper::~ObjectMapper() [function] [call site] 00062
2 oatpp::base::Countable::~Countable() [function] [call site] 00063
1 oatpp::data::mapping::type::ObjectWrapper , std::__1::allocator >, oatpp::data::mapping::type::__class::String>::~ObjectWrapper() [function] [call site] 00064