Fuzz introspector: detokenize_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
46 48 pw::tokenizer::StringSegment::Decode(pw::span const&) const call site: {node_id} pw_varint_Decode64
11 35 pw::tokenizer::DetokenizedString::DetokenizedString(unsigned int, pw::span const, 18446744073709551615ul> const&, pw::span const&) call site: {node_id}
4 2 LLVMFuzzerTestOneInput call site: {node_id}
4 8 pw::tokenizer::Detokenizer::Detokenizer(pw::tokenizer::TokenDatabase const&) call site: {node_id}
3 22 pw::tokenizer::Detokenizer::Detokenize(pw::span const&) const call site: {node_id}
3 104 LLVMFuzzerTestOneInput call site: {node_id}
2 17 pw::tokenizer::Detokenizer::Detokenize(pw::span const&) const call site: {node_id}
1 14 LLVMFuzzerTestOneInput call site: {node_id}
1 26 pw::tokenizer::Detokenizer::Detokenize(pw::span const&) const call site: {node_id}
1 28 pw::tokenizer::Detokenizer::Detokenize(pw::span const&) const call site: {node_id}
1 31 pw::tokenizer::Detokenizer::Detokenize(pw::span const&) const call site: {node_id}
1 98 pw::tokenizer::FormatString::Format(pw::span ) const call site: {node_id}

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 __cxa_guard_acquire [call site] 00001
1 pw::tokenizer::TokenDatabase pw::tokenizer::TokenDatabase::Create<pw::tokenizer::(anonymous namespace)::kBasicData>() [function] [call site] 00002
2 pw::tokenizer::TokenDatabase::TokenDatabase<char>(char const*) [function] [call site] 00003
3 unsigned int pw::tokenizer::TokenDatabase::ReadEntryCount<char>(char const*) [function] [call site] 00004
4 unsigned int pw::tokenizer::TokenDatabase::ReadUint32<char>(char const*) [function] [call site] 00005
3 pw::tokenizer::TokenDatabase::TokenDatabase(char const*, char const*) [function] [call site] 00006
1 pw::tokenizer::Detokenizer::Detokenizer(pw::tokenizer::TokenDatabase const&) [function] [call site] 00007
2 pw::tokenizer::TokenDatabase::begin() const [function] [call site] 00008
3 pw::tokenizer::TokenDatabase::iterator::iterator(char const*, char const*) [function] [call site] 00009
4 pw::tokenizer::TokenDatabase::iterator::ReadRawEntry() [function] [call site] 00010
5 unsigned int pw::tokenizer::TokenDatabase::ReadUint32<char>(char const*) [function] [call site] 00011
5 unsigned int pw::tokenizer::TokenDatabase::ReadUint32<char>(char const*) [function] [call site] 00012
1 pw::tokenizer::Detokenizer::~Detokenizer() [function] [call site] 00013
1 pw::span<unsigned char, 18446744073709551615ul>::span(unsigned char*, unsigned long) [function] [call site] 00014
2 pw::pw_span_internal::ExtentStorage<18446744073709551615ul>::ExtentStorage(unsigned long) [function] [call site] 00015
1 pw::tokenizer::Detokenizer::Detokenize(pw::span<unsigned char const, 18446744073709551615ul> const&) const [function] [call site] 00016
2 pw::span<unsigned char const, 18446744073709551615ul>::empty() const [function] [call site] 00017
3 pw::span<unsigned char const, 18446744073709551615ul>::size() const [function] [call site] 00018
4 pw::pw_span_internal::ExtentStorage<18446744073709551615ul>::size() const [function] [call site] 00019
2 pw::tokenizer::DetokenizedString::DetokenizedString() [function] [call site] 00020
2 pw::span<unsigned char const, 18446744073709551615ul>::data() const [function] [call site] 00021
2 unsigned int pw::bytes::ReadInOrder<unsigned int>(cpp20::endian, void const*, unsigned long) [function] [call site] 00022
3 unsigned int pw::bytes::ConvertOrderFrom<unsigned int>(cpp20::endian, unsigned int) [function] [call site] 00023
4 unsigned int pw::bytes::ConvertOrder<unsigned int>(cpp20::endian, cpp20::endian, unsigned int) [function] [call site] 00024
5 unsigned int pw::bytes::internal::ReverseBytes<unsigned int>(unsigned int) [function] [call site] 00025
2 pw::span<std::__1::pair<pw::tokenizer::FormatString, unsigned int>, 18446744073709551615ul>::span() [function] [call site] 00026
3 pw::pw_span_internal::ExtentStorage<18446744073709551615ul>::ExtentStorage(unsigned long) [function] [call site] 00027
2 pw::span<std::__1::pair<pw::tokenizer::FormatString, unsigned int> const, 18446744073709551615ul>::span<std::__1::vector<std::__1::pair<pw::tokenizer::FormatString, unsigned int>, std::__1::allocator<std::__1::pair<pw::tokenizer::FormatString, unsigned int> > >, void>(std::__1::vector<std::__1::pair<pw::tokenizer::FormatString, unsigned int>, std::__1::allocator<std::__1::pair<pw::tokenizer::FormatString, unsigned int> > > const&) [function] [call site] 00028
3 pw::span<std::__1::pair<pw::tokenizer::FormatString, unsigned int> const, 18446744073709551615ul>::span(std::__1::pair<pw::tokenizer::FormatString, unsigned int> const*, unsigned long) [function] [call site] 00029
2 pw::span<unsigned char const, 18446744073709551615ul>::size() const [function] [call site] 00030
2 pw::span<unsigned char const, 18446744073709551615ul>::subspan(unsigned long, unsigned long) const [function] [call site] 00031
3 pw::span<unsigned char const, 18446744073709551615ul>::data() const [function] [call site] 00032
2 pw::tokenizer::DetokenizedString::DetokenizedString(unsigned int, pw::span<std::__1::pair<pw::tokenizer::FormatString, unsigned int> const, 18446744073709551615ul> const&, pw::span<unsigned char const, 18446744073709551615ul> const&) [function] [call site] 00033
3 pw::span<std::__1::pair<pw::tokenizer::FormatString, unsigned int> const, 18446744073709551615ul>::begin() const [function] [call site] 00034
3 pw::tokenizer::FormatString::Format(pw::span<unsigned char const, 18446744073709551615ul>) const [function] [call site] 00035
4 pw::tokenizer::StringSegment::Skip() const [function] [call site] 00036
5 pw::tokenizer::DecodedArg::DecodedArg(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00037
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00038
5 pw::tokenizer::DecodedArg::DecodedArg(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00039
5 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00040
5 pw::tokenizer::DecodedArg::DecodedArg(pw::tokenizer::ArgStatus, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned long, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00041
6 pw::tokenizer::(anonymous namespace)::ErrorMessage(pw::tokenizer::ArgStatus, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00042
7 pw::tokenizer::ArgStatus::HasError(pw::tokenizer::ArgStatus::Code) const [function] [call site] 00043
7 pw::tokenizer::ArgStatus::HasError(pw::tokenizer::ArgStatus::Code) const [function] [call site] 00044
7 pw::tokenizer::ArgStatus::HasError(pw::tokenizer::ArgStatus::Code) const [function] [call site] 00045
4 pw::tokenizer::DecodedArg::~DecodedArg() [function] [call site] 00046
4 pw::tokenizer::StringSegment::Decode(pw::span<unsigned char const, 18446744073709551615ul> const&) const [function] [call site] 00047
5 pw::tokenizer::DecodedArg::DecodedArg(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00048
5 pw::tokenizer::DecodedArg::DecodedArg(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00049
5 pw::tokenizer::StringSegment::DecodeString(pw::span<unsigned char const, 18446744073709551615ul> const&) const [function] [call site] 00050
6 pw::span<unsigned char const, 18446744073709551615ul>::empty() const [function] [call site] 00051
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00052
6 pw::tokenizer::DecodedArg::DecodedArg(pw::tokenizer::ArgStatus, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned long, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00053
6 pw::span<unsigned char const, 18446744073709551615ul>::operator[](unsigned long) const [function] [call site] 00054
7 pw::span<unsigned char const, 18446744073709551615ul>::data() const [function] [call site] 00055
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00056
6 pw::span<unsigned char const, 18446744073709551615ul>::operator[](unsigned long) const [function] [call site] 00057
6 pw::span<unsigned char const, 18446744073709551615ul>::size() const [function] [call site] 00058
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00059
6 pw::span<unsigned char const, 18446744073709551615ul>::subspan(unsigned long, unsigned long) const [function] [call site] 00060
6 pw::span<unsigned char const, 18446744073709551615ul>::size() const [function] [call site] 00061
6 pw::span<unsigned char const, 18446744073709551615ul>::data() const [function] [call site] 00062
6 pw::tokenizer::DecodedArg::DecodedArg(pw::tokenizer::ArgStatus, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned long, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00063
6 pw::span<unsigned char const, 18446744073709551615ul>::data() const [function] [call site] 00064
6 pw::tokenizer::ArgStatus::HasError(pw::tokenizer::ArgStatus::Code) const [function] [call site] 00065
6 pw::tokenizer::DecodedArg pw::tokenizer::DecodedArg::FromValue<char const*>(char const*, char const*, unsigned long, pw::tokenizer::ArgStatus) [function] [call site] 00066
7 pw::tokenizer::DecodedArg::DecodedArg(char const*, unsigned long, pw::tokenizer::ArgStatus) [function] [call site] 00067
7 snprintf [call site] 00068
7 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00069
7 snprintf [call site] 00070
5 pw::tokenizer::StringSegment::DecodeInteger(pw::span<unsigned char const, 18446744073709551615ul> const&) const [function] [call site] 00071
6 pw::span<unsigned char const, 18446744073709551615ul>::empty() const [function] [call site] 00072
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00073
6 pw::tokenizer::DecodedArg::DecodedArg(pw::tokenizer::ArgStatus, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned long, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00074
6 pw::span<std::byte const, ((18446744073709551615ul)==pw::dynamic_extent)?pw::dynamic_extent : ((sizeof (unsigned char const))*(18446744073709551615ul))> pw::as_bytes<unsigned char const, 18446744073709551615ul>(pw::span<unsigned char const, 18446744073709551615ul>) [function] [call site] 00075
7 pw::span<unsigned char const, 18446744073709551615ul>::data() const [function] [call site] 00076
6 pw::varint::Decode(pw::span<std::byte const, 18446744073709551615ul> const&, long*) [function] [call site] 00077
7 pw::span<std::byte const, 18446744073709551615ul>::data() const [function] [call site] 00078
7 pw_varint_Decode64 [function] [call site] 00079
8 pw_varint_DecodeOneByte64 [function] [call site] 00080
7 pw_varint_ZigZagDecode64(unsigned long) [function] [call site] 00081
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00082
6 pw::span<unsigned char const, 18446744073709551615ul>::size() const [function] [call site] 00083
6 pw::tokenizer::DecodedArg::DecodedArg(pw::tokenizer::ArgStatus, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned long, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00084
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00085
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00086
5 pw::tokenizer::StringSegment::DecodeFloatingPoint(pw::span<unsigned char const, 18446744073709551615ul> const&) const [function] [call site] 00087
6 pw::span<unsigned char const, 18446744073709551615ul>::size() const [function] [call site] 00088
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00089
6 pw::tokenizer::DecodedArg::DecodedArg(pw::tokenizer::ArgStatus, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned long, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00090
6 pw::span<unsigned char const, 18446744073709551615ul>::data() const [function] [call site] 00091
6 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00092
5 pw::tokenizer::ArgStatus::ArgStatus(pw::tokenizer::ArgStatus::Code) [function] [call site] 00093
5 pw::tokenizer::DecodedArg::DecodedArg(pw::tokenizer::ArgStatus, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&, unsigned long, std::__1::basic_string_view<char, std::__1::char_traits<char> > const&) [function] [call site] 00094
4 pw::tokenizer::DecodedArg::~DecodedArg() [function] [call site] 00095
4 pw::tokenizer::DecodedArg::raw_size_bytes() const [function] [call site] 00096
4 pw::span<unsigned char const, 18446744073709551615ul>::subspan(unsigned long, unsigned long) const [function] [call site] 00097
4 pw::tokenizer::DecodedArg::ok() const [function] [call site] 00098
5 pw::tokenizer::ArgStatus::ok() const [function] [call site] 00099
4 pw::span<unsigned char const, 18446744073709551615ul>::size() const [function] [call site] 00100
4 pw::tokenizer::DecodedFormatString::DecodedFormatString(std::__1::vector<pw::tokenizer::DecodedArg, std::__1::allocator<pw::tokenizer::DecodedArg> >&&, unsigned long) [function] [call site] 00101
3 pw::tokenizer::DecodedFormatString::~DecodedFormatString() [function] [call site] 00102
1 pw::tokenizer::DetokenizedString::~DetokenizedString() [function] [call site] 00103
1 pw::tokenizer::Detokenizer::Detokenize(std::__1::basic_string_view<char, std::__1::char_traits<char> >) const [function] [call site] 00104
2 pw::tokenizer::Detokenizer::Detokenize(void const*, unsigned long) const [function] [call site] 00105
3 pw::span<unsigned char const, 18446744073709551615ul>::span(unsigned char const*, unsigned long) [function] [call site] 00106
3 pw::tokenizer::Detokenizer::Detokenize(pw::span<unsigned char const, 18446744073709551615ul> const&) const [function] [call site] 00107
1 pw::tokenizer::DetokenizedString::~DetokenizedString() [function] [call site] 00108
1 pw::tokenizer::Detokenizer::Detokenize(void const*, unsigned long) const [function] [call site] 00109
1 pw::tokenizer::DetokenizedString::~DetokenizedString() [function] [call site] 00110