Fuzz introspector: firestore_fieldpath_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 0 None 0 50 firebase::firestore::util::internal::StringFormatPieces(charconst*,std::initializer_list ) call site: 00000 /src/firebase-ios-sdk/Firestore/core/src/util/string_format.cc:104

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 firebase::firestore::model::FieldPath::FromServerFormat(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00001
2 absl::lts_20240116::string_view::string_view<std::__1::allocator<char> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00002
3 absl::lts_20240116::string_view::string_view(char const*, unsigned long, absl::lts_20240116::string_view::SkipCheckLengthTag) [function] [call site] 00003
2 firebase::firestore::model::FieldPath::FromServerFormatView(absl::lts_20240116::string_view) [function] [call site] 00004
3 absl::lts_20240116::string_view::size() const [function] [call site] 00005
3 firebase::firestore::util::Status::Status() [function] [call site] 00006
3 absl::lts_20240116::string_view::size() const [function] [call site] 00007
3 absl::lts_20240116::string_view::operator[](unsigned long) const [function] [call site] 00008
4 absl::lts_20240116::string_view::size() const [function] [call site] 00009
4 absl::lts_20240116::string_view::operator[](unsigned long) const::{lambda()#1}::operator()() const [function] [call site] 00010
5 __assert_fail [call site] 00011
3 firebase::firestore::model::FieldPath::FromServerFormatView(absl::lts_20240116::string_view)::$_0::operator()() const [function] [call site] 00012
4 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > firebase::firestore::util::StringFormat<absl::lts_20240116::string_view>(char const*, absl::lts_20240116::string_view const&) [function] [call site] 00013
5 absl::lts_20240116::strings_internal::StringifySink::StringifySink() [function] [call site] 00014
5 firebase::firestore::util::FormatArg::FormatArg<absl::lts_20240116::string_view const&>(absl::lts_20240116::string_view const&, absl::lts_20240116::strings_internal::StringifySink&&) [function] [call site] 00015
6 firebase::firestore::util::FormatArg::FormatArg<absl::lts_20240116::string_view const&>(absl::lts_20240116::string_view const&, absl::lts_20240116::strings_internal::StringifySink&&, firebase::firestore::util::internal::FormatChoice<5>) [function] [call site] 00016
7 absl::lts_20240116::AlphaNum::AlphaNum(absl::lts_20240116::string_view) [function] [call site] 00017
5 absl::lts_20240116::AlphaNum::Piece() const [function] [call site] 00018
5 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list<absl::lts_20240116::string_view>) [function] [call site] 00019
6 strlen [call site] 00020
6 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list<absl::lts_20240116::string_view>)::$_0::operator()(char) const [function] [call site] 00021
7 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list<absl::lts_20240116::string_view>)::$_1::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) const [function] [call site] 00022
8 absl::lts_20240116::string_view::data() const [function] [call site] 00023
8 absl::lts_20240116::string_view::size() const [function] [call site] 00024
7 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list<absl::lts_20240116::string_view>)::$_2::operator()(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) const [function] [call site] 00025
8 absl::lts_20240116::string_view::data() const [function] [call site] 00026
8 absl::lts_20240116::string_view::string_view(char const*) [function] [call site] 00027
9 absl::lts_20240116::string_view::StrlenInternal(char const*) [function] [call site] 00028
10 strlen [call site] 00029
8 absl::lts_20240116::BytesToHexString(absl::lts_20240116::string_view) [function] [call site] 00030
9 absl::lts_20240116::string_view::size() const [function] [call site] 00031
9 void absl::lts_20240116::strings_internal::STLStringResizeUninitialized<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, unsigned long) [function] [call site] 00032
10 absl::lts_20240116::strings_internal::ResizeUninitializedTraits<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, void>::Resize(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, unsigned long) [function] [call site] 00033
9 absl::lts_20240116::string_view::data() const [function] [call site] 00034
9 absl::lts_20240116::string_view::size() const [function] [call site] 00035
9 void absl::lts_20240116::(anonymous namespace)::BytesToHexStringInternal<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&>(unsigned char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long) [function] [call site] 00036
6 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list<absl::lts_20240116::string_view>)::$_0::operator()(char) const [function] [call site] 00037
5 absl::lts_20240116::strings_internal::StringifySink::~StringifySink() [function] [call site] 00038
4 firebase::firestore::util::Status::Status(firebase::firestore::Error, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00039
5 firebase::firestore::util::StringFormat() [function] [call site] 00040
5 firebase::firestore::util::internal::FailAssertion(char const*, char const*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const*) [function] [call site] 00041
6 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > firebase::firestore::util::StringFormat<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, char const*>(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, char const* const&) [function] [call site] 00042
7 firebase::firestore::util::FormatArg::FormatArg<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&, absl::lts_20240116::strings_internal::StringifySink&&) [function] [call site] 00043
8 firebase::firestore::util::FormatArg::FormatArg<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&, absl::lts_20240116::strings_internal::StringifySink&&, firebase::firestore::util::internal::FormatChoice<5>) [function] [call site] 00044
9 absl::lts_20240116::AlphaNum::AlphaNum<std::__1::allocator<char> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00045
10 absl::lts_20240116::string_view::string_view<std::__1::allocator<char> >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00046
7 firebase::firestore::util::FormatArg::FormatArg<char const* const&>(char const* const&, absl::lts_20240116::strings_internal::StringifySink&&) [function] [call site] 00047
8 firebase::firestore::util::FormatArg::FormatArg(char const*, absl::lts_20240116::strings_internal::StringifySink&&, firebase::firestore::util::internal::FormatChoice<3>) [function] [call site] 00048
9 absl::lts_20240116::AlphaNum::AlphaNum(char const*) [function] [call site] 00049
10 absl::lts_20240116::NullSafeStringView(char const*) [function] [call site] 00050
11 absl::lts_20240116::string_view::string_view(char const*) [function] [call site] 00051
11 absl::lts_20240116::string_view::string_view() [function] [call site] 00052
6 firebase::firestore::util::internal::FailAssertion(char const*, char const*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00053
7 firebase::firestore::util::Throw(firebase::firestore::util::ExceptionType, char const*, char const*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00054
5 std::__1::unique_ptr<firebase::firestore::util::Status::State, firebase::firestore::util::Status::State::Deleter> firebase::firestore::util::Status::State::MakePtr<firebase::firestore::Error&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(firebase::firestore::Error&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) [function] [call site] 00055
6 firebase::firestore::util::Status::State::State(firebase::firestore::Error, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) [function] [call site] 00056
4 firebase::firestore::util::Status::OK() [function] [call site] 00057
5 firebase::firestore::util::Status::Status() [function] [call site] 00058
3 firebase::firestore::util::Status::operator=(firebase::firestore::util::Status&&) [function] [call site] 00059
4 firebase::firestore::util::Status::SetMovedFrom() [function] [call site] 00060
5 firebase::firestore::util::Status::State::MovedFromIndicator() [function] [call site] 00061
4 __clang_call_terminate [call site] 00062
5 __cxa_begin_catch [call site] 00063
3 firebase::firestore::util::Status::~Status() [function] [call site] 00064
3 absl::lts_20240116::string_view::size() const [function] [call site] 00065
3 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > firebase::firestore::util::StringFormat<absl::lts_20240116::string_view>(char const*, absl::lts_20240116::string_view const&) [function] [call site] 00066
3 firebase::firestore::util::Status::Status(firebase::firestore::Error, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00067
3 firebase::firestore::util::Status::operator=(firebase::firestore::util::Status&&) [function] [call site] 00068
3 firebase::firestore::util::Status::~Status() [function] [call site] 00069
3 absl::lts_20240116::string_view::operator[](unsigned long) const [function] [call site] 00070
3 firebase::firestore::util::Status::ok() const [function] [call site] 00071
3 firebase::firestore::util::StatusOr<firebase::firestore::model::FieldPath>::StatusOr(firebase::firestore::util::Status&&) [function] [call site] 00072
4 firebase::firestore::util::internal_statusor::StatusOrData<firebase::firestore::model::FieldPath>::StatusOrData(firebase::firestore::util::Status&&) [function] [call site] 00073
5 firebase::firestore::util::Status::Status(firebase::firestore::util::Status&&) [function] [call site] 00074
6 firebase::firestore::util::Status::SetMovedFrom() [function] [call site] 00075
6 __clang_call_terminate [call site] 00076
5 firebase::firestore::util::internal_statusor::StatusOrData<firebase::firestore::model::FieldPath>::EnsureNotOk() [function] [call site] 00077
6 firebase::firestore::util::internal_statusor::StatusOrData<firebase::firestore::model::FieldPath>::ok() const [function] [call site] 00078
7 firebase::firestore::util::Status::ok() const [function] [call site] 00079
6 firebase::firestore::util::internal_statusor::Helper::HandleInvalidStatusCtorArg(firebase::firestore::util::Status*) [function] [call site] 00080
7 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > firebase::firestore::util::StringFormat<char const*>(char const*, char const* const&) [function] [call site] 00081
7 firebase::firestore::util::internal::FailAssertion(char const*, char const*, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) [function] [call site] 00082
7 firebase::firestore::util::Status::Status(firebase::firestore::Error, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00083
7 firebase::firestore::util::Status::operator=(firebase::firestore::util::Status&&) [function] [call site] 00084
7 firebase::firestore::util::Status::~Status() [function] [call site] 00085
5 firebase::firestore::util::Status::~Status() [function] [call site] 00086
3 firebase::firestore::model::FieldPath::FromServerFormatView(absl::lts_20240116::string_view)::$_0::operator()() const [function] [call site] 00087
3 firebase::firestore::util::Status::operator=(firebase::firestore::util::Status&&) [function] [call site] 00088
3 firebase::firestore::util::Status::~Status() [function] [call site] 00089
3 firebase::firestore::util::Status::ok() const [function] [call site] 00090
3 firebase::firestore::util::StatusOr<firebase::firestore::model::FieldPath>::StatusOr(firebase::firestore::util::Status&&) [function] [call site] 00091
3 std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > firebase::firestore::util::StringFormat<absl::lts_20240116::string_view>(char const*, absl::lts_20240116::string_view const&) [function] [call site] 00092
3 firebase::firestore::util::Status::Status(firebase::firestore::Error, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) [function] [call site] 00093
3 firebase::firestore::util::StatusOr<firebase::firestore::model::FieldPath>::StatusOr(firebase::firestore::util::Status&&) [function] [call site] 00094
3 firebase::firestore::util::Status::~Status() [function] [call site] 00095
3 firebase::firestore::model::FieldPath::FieldPath(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] 00096
4 firebase::firestore::model::impl::BasePath<firebase::firestore::model::FieldPath>::BasePath(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] 00097
3 firebase::firestore::util::StatusOr<firebase::firestore::model::FieldPath>::StatusOr(firebase::firestore::model::FieldPath&&) [function] [call site] 00098
4 firebase::firestore::util::internal_statusor::StatusOrData<firebase::firestore::model::FieldPath>::StatusOrData(firebase::firestore::model::FieldPath&&) [function] [call site] 00099
5 firebase::firestore::model::FieldPath::FieldPath(firebase::firestore::model::FieldPath&&) [function] [call site] 00100
6 firebase::firestore::model::impl::BasePath<firebase::firestore::model::FieldPath>::BasePath(firebase::firestore::model::impl::BasePath<firebase::firestore::model::FieldPath>&&) [function] [call site] 00101
5 void firebase::firestore::util::internal_statusor::StatusOrData<firebase::firestore::model::FieldPath>::MakeStatus<>() [function] [call site] 00102
6 void firebase::firestore::util::internal_statusor::PlacementNew<firebase::firestore::util::Status>(void*) [function] [call site] 00103
7 firebase::firestore::util::Status::Status() [function] [call site] 00104
5 firebase::firestore::model::FieldPath::~FieldPath() [function] [call site] 00105
6 firebase::firestore::model::impl::BasePath<firebase::firestore::model::FieldPath>::~BasePath() [function] [call site] 00106
3 firebase::firestore::model::FieldPath::~FieldPath() [function] [call site] 00107
3 firebase::firestore::util::Status::~Status() [function] [call site] 00108
1 firebase::firestore::util::StatusOr<firebase::firestore::model::FieldPath>::~StatusOr() [function] [call site] 00109
2 firebase::firestore::util::internal_statusor::StatusOrData<firebase::firestore::model::FieldPath>::~StatusOrData() [function] [call site] 00110
3 firebase::firestore::util::internal_statusor::StatusOrData<firebase::firestore::model::FieldPath>::ok() const [function] [call site] 00111
3 firebase::firestore::util::Status::~Status() [function] [call site] 00112
3 firebase::firestore::model::FieldPath::~FieldPath() [function] [call site] 00113
3 firebase::firestore::util::Status::~Status() [function] [call site] 00114
3 __clang_call_terminate [call site] 00115
1 __cxa_begin_catch [call site] 00116
1 __cxa_end_catch [call site] 00117