Fuzz introspector: multipart_fuzzer
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
4 43 crow::multipart::message::parse_body(std::__1::basic_string , std::__1::allocator >) call site: 00043 __cxa_allocate_exception
4 65 crow::multipart::message_view::message_view(crow::request const&) call site: 00065 __cxa_allocate_exception
1 2 LLVMFuzzerTestOneInput call site: 00002
1 55 LLVMFuzzerTestOneInput call site: 00055
1 105 LLVMFuzzerTestOneInput call site: 00105

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 (anonymous namespace)::bounded(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00001
1 crow::request::request() [function] [call site] 00002
2 crow::query_string::query_string() [function] [call site] 00003
1 crow::request::add_header(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> >) [function] [call site] 00004
2 crow::sanitize_header_value(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) [function] [call site] 00005
2 crow::sanitize_header_value(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) [function] [call site] 00006
1 crow::multipart::message::message(crow::request const&) [function] [call site] 00007
2 crow::returnable::returnable(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00008
2 crow::multipart::message::get_header_value(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const [function] [call site] 00009
3 crow::get_header_value(std::__1::unordered_multimap<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> >, crow::ci_hash, crow::ci_key_eq, std::__1::allocator<std::__1::pair<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&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00010
4 __cxa_guard_acquire [call site] 00011
4 __cxa_atexit [call site] 00012
4 __cxa_guard_release [call site] 00013
2 crow::multipart::message::get_boundary(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const [function] [call site] 00014
2 crow::multipart::message::parse_body(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00015
3 __cxa_allocate_exception [call site] 00016
3 crow::bad_request::bad_request(char const*) [function] [call site] 00017
4 std::runtime_error::runtime_error(char const*) [call site] 00018
3 __cxa_throw [call site] 00019
3 __cxa_free_exception [call site] 00020
3 crow::multipart::message::parse_section(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) [function] [call site] 00021
4 crow::multipart::part::part() [function] [call site] 00022
4 __cxa_allocate_exception [call site] 00023
4 crow::bad_request::bad_request(char const*) [function] [call site] 00024
4 __cxa_throw [call site] 00025
4 __cxa_free_exception [call site] 00026
4 crow::multipart::message::parse_section_head(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, crow::multipart::part&) [function] [call site] 00027
5 crow::multipart::header::header() [function] [call site] 00028
5 crow::multipart::message::trim(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, char const&) const [function] [call site] 00029
5 crow::multipart::header::~header() [function] [call site] 00030
4 crow::multipart::part::~part() [function] [call site] 00031
3 crow::multipart::header const& crow::multipart::get_header_object<std::__1::unordered_multimap<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, crow::multipart::header, crow::ci_hash, crow::ci_key_eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, crow::multipart::header> > > >(std::__1::unordered_multimap<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, crow::multipart::header, crow::ci_hash, crow::ci_key_eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, crow::multipart::header> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00032
4 crow::multipart::header const& crow::multipart::get_header_value_object<crow::multipart::header, std::__1::unordered_multimap<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, crow::multipart::header, crow::ci_hash, crow::ci_key_eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, crow::multipart::header> > > >(std::__1::unordered_multimap<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, crow::multipart::header, crow::ci_hash, crow::ci_key_eq, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, crow::multipart::header> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00033
5 __cxa_guard_acquire [call site] 00034
5 crow::multipart::header::header() [function] [call site] 00035
5 __cxa_atexit [call site] 00036
5 crow::multipart::header::~header() [function] [call site] 00037
5 __cxa_guard_release [call site] 00038
3 __cxa_allocate_exception [call site] 00039
3 crow::bad_request::bad_request(char const*) [function] [call site] 00040
3 __cxa_throw [call site] 00041
3 __cxa_free_exception [call site] 00042
3 crow::multipart::part::~part() [function] [call site] 00043
2 __cxa_allocate_exception [call site] 00044
2 crow::bad_request::bad_request(char const*) [function] [call site] 00045
2 __cxa_throw [call site] 00046
2 __cxa_free_exception [call site] 00047
2 crow::returnable::~returnable() [function] [call site] 00048
1 crow::multipart::message::dump() const [function] [call site] 00049
2 crow::multipart::message::dump(int) const [function] [call site] 00050
3 crow::multipart::part::part(crow::multipart::part const&) [function] [call site] 00051
3 crow::multipart::message::pad(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, char const&) const [function] [call site] 00052
3 crow::multipart::part::~part() [function] [call site] 00053
1 crow::multipart::message::dump(int) const [function] [call site] 00054
1 crow::multipart::message::~message() [function] [call site] 00055
2 crow::returnable::~returnable() [function] [call site] 00056
1 crow::multipart::message::get_part_by_name(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00057
2 crow::multipart::part::part(crow::multipart::part const&) [function] [call site] 00058
1 crow::multipart::part::~part() [function] [call site] 00059
1 __cxa_begin_catch [call site] 00060
1 __cxa_end_catch [call site] 00061
1 crow::multipart::message_view::message_view(crow::request const&) [function] [call site] 00062
2 crow::multipart::message_view::get_header_value(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const [function] [call site] 00063
3 crow::get_header_value(std::__1::unordered_multimap<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> >, crow::ci_hash, crow::ci_key_eq, std::__1::allocator<std::__1::pair<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&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00064
2 crow::multipart::message_view::get_boundary(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00065
2 __cxa_allocate_exception [call site] 00066
2 crow::bad_request::bad_request(char const*) [function] [call site] 00067
2 __cxa_throw [call site] 00068
2 __cxa_free_exception [call site] 00069
2 crow::multipart::message_view::parse_body(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00070
3 __cxa_allocate_exception [call site] 00071
3 crow::bad_request::bad_request(char const*) [function] [call site] 00072
3 __cxa_throw [call site] 00073
3 __cxa_free_exception [call site] 00074
3 crow::multipart::message_view::parse_section(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00075
4 __cxa_allocate_exception [call site] 00076
4 crow::bad_request::bad_request(char const*) [function] [call site] 00077
4 __cxa_throw [call site] 00078
4 std::runtime_error::~runtime_error() [call site] 00079
4 __cxa_free_exception [call site] 00080
4 crow::multipart::message_view::parse_section_head(std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00081
5 crow::multipart::header_view::header_view() [function] [call site] 00082
5 crow::multipart::message_view::trim(std::__1::basic_string_view<char, std::__1::char_traits<char> >, char) [function] [call site] 00083
5 crow::multipart::header_view::~header_view() [function] [call site] 00084
3 crow::multipart::get_header_object(std::__1::unordered_multimap<std::__1::basic_string_view<char, std::__1::char_traits<char> >, crow::multipart::header_view, crow::ci_hash, crow::ci_key_eq, std::__1::allocator<std::__1::pair<std::__1::basic_string_view<char, std::__1::char_traits<char> > const, crow::multipart::header_view> > > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >) [function] [call site] 00085
4 __cxa_guard_acquire [call site] 00086
4 crow::multipart::header_view::header_view() [function] [call site] 00087
4 __cxa_atexit [call site] 00088
4 crow::multipart::header_view::~header_view() [function] [call site] 00089
4 __cxa_guard_release [call site] 00090
3 __cxa_allocate_exception [call site] 00091
3 crow::bad_request::bad_request(char const*) [function] [call site] 00092
3 __cxa_throw [call site] 00093
3 __cxa_free_exception [call site] 00094
3 crow::multipart::part_view::~part_view() [function] [call site] 00095
1 crow::multipart::message_view::dump() const [function] [call site] 00096
2 crow::multipart::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, crow::multipart::message_view const&) [function] [call site] 00097
3 crow::multipart::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, crow::multipart::part_view const&) [function] [call site] 00098
4 crow::multipart::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, crow::multipart::padded) [function] [call site] 00099
1 crow::multipart::message_view::~message_view() [function] [call site] 00100
1 crow::multipart::message_view::dump(int) const [function] [call site] 00101
2 crow::multipart::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, crow::multipart::part_view const&) [function] [call site] 00102
1 __cxa_begin_catch [call site] 00103
1 __cxa_end_catch [call site] 00104
1 crow::request::~request() [function] [call site] 00105
2 crow::query_string::~query_string() [function] [call site] 00106