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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
135 0 EP call site: 00000 strspn

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 tinyobj::ObjReaderConfig::ObjReaderConfig() [function] [call site] 00001
1 tinyobj::ObjReader::ObjReader() [function] [call site] 00002
2 tinyobj::attrib_t::attrib_t() [function] [call site] 00003
1 tinyobj::ObjReader::ParseFromString(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, tinyobj::ObjReaderConfig const&) [function] [call site] 00004
2 tinyobj::MaterialStreamReader::MaterialStreamReader(std::__1::basic_istream<char, std::__1::char_traits<char> >&) [function] [call site] 00005
3 tinyobj::MaterialReader::MaterialReader() [function] [call site] 00006
2 tinyobj::LoadObj(tinyobj::attrib_t*, std::__1::vector<tinyobj::shape_t, std::__1::allocator<tinyobj::shape_t> >*, std::__1::vector<tinyobj::material_t, std::__1::allocator<tinyobj::material_t> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::basic_istream<char, std::__1::char_traits<char> >*, tinyobj::MaterialReader*, bool, bool) [function] [call site] 00007
3 tinyobj::PrimGroup::PrimGroup() [function] [call site] 00008
3 tinyobj::shape_t::shape_t() [function] [call site] 00009
4 tinyobj::mesh_t::mesh_t() [function] [call site] 00010
4 tinyobj::lines_t::lines_t() [function] [call site] 00011
4 tinyobj::points_t::points_t() [function] [call site] 00012
3 tinyobj::safeGetline(std::__1::basic_istream<char, std::__1::char_traits<char> >&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) [function] [call site] 00013
3 strspn [call site] 00014
3 __assert_fail [call site] 00015
3 tinyobj::parseVertexWithColor(float*, float*, float*, float*, float*, float*, char const**, double, double, double) [function] [call site] 00016
4 tinyobj::parseReal(char const**, double) [function] [call site] 00017
5 strspn [call site] 00018
5 strcspn [call site] 00019
5 tinyobj::tryParseDouble(char const*, char const*, double*) [function] [call site] 00020
6 ldexp [call site] 00021
4 tinyobj::parseReal(char const**, double) [function] [call site] 00022
4 tinyobj::parseReal(char const**, double) [function] [call site] 00023
4 tinyobj::parseReal(char const**, float*) [function] [call site] 00024
5 strspn [call site] 00025
5 strcspn [call site] 00026
5 tinyobj::tryParseDouble(char const*, char const*, double*) [function] [call site] 00027
4 tinyobj::parseReal(char const**, float*) [function] [call site] 00028
4 tinyobj::parseReal(char const**, float*) [function] [call site] 00029
3 tinyobj::parseReal3(float*, float*, float*, char const**, double, double, double) [function] [call site] 00030
4 tinyobj::parseReal(char const**, double) [function] [call site] 00031
4 tinyobj::parseReal(char const**, double) [function] [call site] 00032
4 tinyobj::parseReal(char const**, double) [function] [call site] 00033
3 tinyobj::parseReal2(float*, float*, char const**, double, double) [function] [call site] 00034
4 tinyobj::parseReal(char const**, double) [function] [call site] 00035
4 tinyobj::parseReal(char const**, double) [function] [call site] 00036
3 tinyobj::parseInt(char const**) [function] [call site] 00037
4 strspn [call site] 00038
4 atoi [call site] 00039
4 strcspn [call site] 00040
3 tinyobj::skin_weight_t::skin_weight_t() [function] [call site] 00041
3 tinyobj::parseReal2(float*, float*, char const**, double, double) [function] [call site] 00042
3 strspn [call site] 00043
3 tinyobj::skin_weight_t::~skin_weight_t() [function] [call site] 00044
3 tinyobj::__line_t::__line_t() [function] [call site] 00045
3 tinyobj::vertex_index_t::vertex_index_t() [function] [call site] 00046
3 tinyobj::parseTriple(char const**, int, int, int, tinyobj::vertex_index_t*, tinyobj::warning_context const&) [function] [call site] 00047
4 tinyobj::vertex_index_t::vertex_index_t(int) [function] [call site] 00048
4 atoi [call site] 00049
4 tinyobj::fixIndex(int, int, int*, bool, tinyobj::warning_context const&) [function] [call site] 00050
5 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > tinyobj::toString<unsigned long>(unsigned long const&) [function] [call site] 00051
4 strcspn [call site] 00052
4 atoi [call site] 00053
4 tinyobj::fixIndex(int, int, int*, bool, tinyobj::warning_context const&) [function] [call site] 00054
4 strcspn [call site] 00055
4 atoi [call site] 00056
4 tinyobj::fixIndex(int, int, int*, bool, tinyobj::warning_context const&) [function] [call site] 00057
4 strcspn [call site] 00058
4 atoi [call site] 00059
4 tinyobj::fixIndex(int, int, int*, bool, tinyobj::warning_context const&) [function] [call site] 00060
4 strcspn [call site] 00061
3 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > tinyobj::toString<unsigned long>(unsigned long const&) [function] [call site] 00062
3 strspn [call site] 00063
3 tinyobj::__line_t::~__line_t() [function] [call site] 00064
3 tinyobj::__points_t::__points_t() [function] [call site] 00065
3 tinyobj::vertex_index_t::vertex_index_t() [function] [call site] 00066
3 tinyobj::parseTriple(char const**, int, int, int, tinyobj::vertex_index_t*, tinyobj::warning_context const&) [function] [call site] 00067
3 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > tinyobj::toString<unsigned long>(unsigned long const&) [function] [call site] 00068
3 strspn [call site] 00069
3 tinyobj::__points_t::~__points_t() [function] [call site] 00070
3 strspn [call site] 00071
3 tinyobj::face_t::face_t() [function] [call site] 00072
3 tinyobj::vertex_index_t::vertex_index_t() [function] [call site] 00073
3 tinyobj::parseTriple(char const**, int, int, int, tinyobj::vertex_index_t*, tinyobj::warning_context const&) [function] [call site] 00074
3 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > tinyobj::toString<unsigned long>(unsigned long const&) [function] [call site] 00075
3 strspn [call site] 00076
3 tinyobj::face_t::~face_t() [function] [call site] 00077
3 strncmp [call site] 00078
3 tinyobj::parseString(char const**) [function] [call site] 00079
4 strspn [call site] 00080
4 strcspn [call site] 00081
3 tinyobj::exportGroupsToShape(tinyobj::shape_t*, tinyobj::PrimGroup const&, std::__1::vector<tinyobj::tag_t, std::__1::allocator<tinyobj::tag_t> > const&, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, std::__1::vector<float, std::__1::allocator<float> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) [function] [call site] 00082
4 tinyobj::PrimGroup::IsEmpty() const [function] [call site] 00083
4 tinyobj::vertex_index_t::vertex_index_t(int) [function] [call site] 00084
4 tinyobj::face_t::face_t(tinyobj::face_t const&) [function] [call site] 00085
4 tinyobj::vertex_index_t::vertex_index_t() [function] [call site] 00086
4 tinyobj::face_t::~face_t() [function] [call site] 00087
4 int tinyobj::pnpoly<float>(int, float*, float*, float, float) [function] [call site] 00088
3 strncmp [call site] 00089
3 tinyobj::SplitString(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char, char, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >&) [function] [call site] 00090
3 tinyobj::exportGroupsToShape(tinyobj::shape_t*, tinyobj::PrimGroup const&, std::__1::vector<tinyobj::tag_t, std::__1::allocator<tinyobj::tag_t> > const&, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, std::__1::vector<float, std::__1::allocator<float> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) [function] [call site] 00091
3 tinyobj::shape_t::shape_t() [function] [call site] 00092
3 tinyobj::shape_t::operator=(tinyobj::shape_t&&) [function] [call site] 00093
4 tinyobj::mesh_t::operator=(tinyobj::mesh_t&&) [function] [call site] 00094
4 tinyobj::lines_t::operator=(tinyobj::lines_t&&) [function] [call site] 00095
4 tinyobj::points_t::operator=(tinyobj::points_t&&) [function] [call site] 00096
3 tinyobj::shape_t::~shape_t() [function] [call site] 00097
4 tinyobj::points_t::~points_t() [function] [call site] 00098
4 tinyobj::lines_t::~lines_t() [function] [call site] 00099
4 tinyobj::mesh_t::~mesh_t() [function] [call site] 00100
3 tinyobj::PrimGroup::clear() [function] [call site] 00101
3 tinyobj::parseString(char const**) [function] [call site] 00102
3 strspn [call site] 00103
3 tinyobj::exportGroupsToShape(tinyobj::shape_t*, tinyobj::PrimGroup const&, std::__1::vector<tinyobj::tag_t, std::__1::allocator<tinyobj::tag_t> > const&, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, std::__1::vector<float, std::__1::allocator<float> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) [function] [call site] 00104
3 tinyobj::PrimGroup::clear() [function] [call site] 00105
3 tinyobj::shape_t::shape_t() [function] [call site] 00106
3 tinyobj::shape_t::operator=(tinyobj::shape_t&&) [function] [call site] 00107
3 tinyobj::shape_t::~shape_t() [function] [call site] 00108
3 tinyobj::tag_t::tag_t() [function] [call site] 00109
3 tinyobj::parseString(char const**) [function] [call site] 00110
3 tinyobj::parseTagTriple(char const**) [function] [call site] 00111
4 tinyobj::tag_sizes::tag_sizes() [function] [call site] 00112
4 strspn [call site] 00113
4 atoi [call site] 00114
4 strcspn [call site] 00115
4 strspn [call site] 00116
4 atoi [call site] 00117
4 strcspn [call site] 00118
4 tinyobj::parseInt(char const**) [function] [call site] 00119
3 tinyobj::tag_t::~tag_t() [function] [call site] 00120
3 tinyobj::parseInt(char const**) [function] [call site] 00121
3 tinyobj::parseReal(char const**, double) [function] [call site] 00122
3 tinyobj::parseString(char const**) [function] [call site] 00123
3 strspn [call site] 00124
3 strlen [call site] 00125
3 tinyobj::parseInt(char const**) [function] [call site] 00126
3 tinyobj::exportGroupsToShape(tinyobj::shape_t*, tinyobj::PrimGroup const&, std::__1::vector<tinyobj::tag_t, std::__1::allocator<tinyobj::tag_t> > const&, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, std::__1::vector<float, std::__1::allocator<float> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) [function] [call site] 00127
3 tinyobj::PrimGroup::clear() [function] [call site] 00128
3 tinyobj::shape_t::~shape_t() [function] [call site] 00129
3 tinyobj::PrimGroup::~PrimGroup() [function] [call site] 00130
2 tinyobj::MaterialStreamReader::~MaterialStreamReader() [function] [call site] 00131
3 tinyobj::MaterialReader::~MaterialReader() [function] [call site] 00132
1 tinyobj::ObjReader::~ObjReader() [function] [call site] 00133
2 tinyobj::attrib_t::~attrib_t() [function] [call site] 00134
1 tinyobj::ObjReaderConfig::~ObjReaderConfig() [function] [call site] 00135