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 26 firebase::firestore::util::internal::StringFormatPieces(charconst*,std::initializer_list ) call site: 00000 /src/firebase-ios-sdk/Firestore/core/src/util/string_format.cc:78
0 0 1 :

['std::__1::basic_string , std::__1::allocator >::append(char const*)']

0 0 firebase::firestore::util::internal::StringFormatPieces(charconst*,std::initializer_list )::$_0::operator()(std::__1::basic_string ,std::__1::allocator >*)const call site: 00000 /src/firebase-ios-sdk/Firestore/core/src/util/string_format.cc:37

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 firebase::firestore::model::FieldPath::FromServerFormat(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00001
2 absl::lts_20211102::string_view::string_view >(std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00002
3 absl::lts_20211102::string_view::string_view(char const*, unsigned long, absl::lts_20211102::string_view::SkipCheckLengthTag) [function] [call site] 00003
2 firebase::firestore::model::FieldPath::FromServerFormatView(absl::lts_20211102::string_view) [function] [call site] 00004
3 absl::lts_20211102::string_view::size() const [function] [call site] 00005
3 firebase::firestore::util::Status::Status() [function] [call site] 00006
3 absl::lts_20211102::string_view::size() const [function] [call site] 00007
3 absl::lts_20211102::string_view::operator[](unsigned long) const [function] [call site] 00008
4 absl::lts_20211102::string_view::size() const [function] [call site] 00009
3 firebase::firestore::model::FieldPath::FromServerFormatView(absl::lts_20211102::string_view)::$_1::operator()() const [function] [call site] 00010
4 std::__1::basic_string , std::__1::allocator > firebase::firestore::util::StringFormat (char const*, absl::lts_20211102::string_view const&) [function] [call site] 00011
5 firebase::firestore::util::FormatArg::FormatArg (absl::lts_20211102::string_view const&) [function] [call site] 00012
6 firebase::firestore::util::FormatArg::FormatArg (absl::lts_20211102::string_view const&, firebase::firestore::util::internal::FormatChoice<5>) [function] [call site] 00013
7 absl::lts_20211102::AlphaNum::AlphaNum(absl::lts_20211102::string_view) [function] [call site] 00014
5 absl::lts_20211102::AlphaNum::Piece() const [function] [call site] 00015
5 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list ) [function] [call site] 00016
6 strlen [call site] 00017
6 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list )::$_1::operator()(char) const [function] [call site] 00018
7 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list )::$_0::operator()(std::__1::basic_string , std::__1::allocator >*) const [function] [call site] 00019
8 absl::lts_20211102::string_view::data() const [function] [call site] 00020
6 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list )::$_1::operator()(char) const [function] [call site] 00021
4 firebase::firestore::util::Status::Status(firebase::firestore::Error, std::__1::basic_string , std::__1::allocator >) [function] [call site] 00022
5 firebase::firestore::util::StringFormat() [function] [call site] 00023
5 firebase::firestore::util::internal::FailAssertion(char const*, char const*, int, std::__1::basic_string , std::__1::allocator > const&, char const*) [function] [call site] 00024
6 std::__1::basic_string , std::__1::allocator > firebase::firestore::util::StringFormat , std::__1::allocator >, char const*>(char const*, std::__1::basic_string , std::__1::allocator > const&, char const* const&) [function] [call site] 00025
6 firebase::firestore::util::internal::FailAssertion(char const*, char const*, int, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00026
7 firebase::firestore::util::Throw(firebase::firestore::util::ExceptionType, char const*, char const*, int, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00027
5 std::__1::unique_ptr firebase::firestore::util::Status::State::MakePtr , std::__1::allocator > >(firebase::firestore::Error&, std::__1::basic_string , std::__1::allocator >&&) [function] [call site] 00028
6 firebase::firestore::util::Status::State::State(firebase::firestore::Error, std::__1::basic_string , std::__1::allocator >&&) [function] [call site] 00029
4 firebase::firestore::util::Status::OK() [function] [call site] 00030
5 firebase::firestore::util::Status::Status() [function] [call site] 00031
3 firebase::firestore::util::Status::operator=(firebase::firestore::util::Status&&) [function] [call site] 00032
4 firebase::firestore::util::Status::SetMovedFrom() [function] [call site] 00033
5 firebase::firestore::util::Status::State::MovedFromIndicator() [function] [call site] 00034
4 __clang_call_terminate [call site] 00035
5 __cxa_begin_catch [call site] 00036
3 absl::lts_20211102::string_view::size() const [function] [call site] 00037
3 std::__1::basic_string , std::__1::allocator > firebase::firestore::util::StringFormat (char const*, absl::lts_20211102::string_view const&) [function] [call site] 00038
3 firebase::firestore::util::Status::Status(firebase::firestore::Error, std::__1::basic_string , std::__1::allocator >) [function] [call site] 00039
3 firebase::firestore::util::Status::operator=(firebase::firestore::util::Status&&) [function] [call site] 00040
3 absl::lts_20211102::string_view::operator[](unsigned long) const [function] [call site] 00041
3 firebase::firestore::util::Status::ok() const [function] [call site] 00042
3 firebase::firestore::util::StatusOr ::StatusOr(firebase::firestore::util::Status&&) [function] [call site] 00043
4 firebase::firestore::util::internal_statusor::StatusOrData ::StatusOrData(firebase::firestore::util::Status&&) [function] [call site] 00044
5 firebase::firestore::util::Status::Status(firebase::firestore::util::Status&&) [function] [call site] 00045
6 firebase::firestore::util::Status::SetMovedFrom() [function] [call site] 00046
6 __clang_call_terminate [call site] 00047
5 firebase::firestore::util::internal_statusor::StatusOrData ::EnsureNotOk() [function] [call site] 00048
6 firebase::firestore::util::internal_statusor::StatusOrData ::ok() const [function] [call site] 00049
6 firebase::firestore::util::internal_statusor::Helper::HandleInvalidStatusCtorArg(firebase::firestore::util::Status*) [function] [call site] 00050
7 std::__1::basic_string , std::__1::allocator > firebase::firestore::util::StringFormat (char const*, char const* const&) [function] [call site] 00051
7 firebase::firestore::util::internal::FailAssertion(char const*, char const*, int, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00052
5 firebase::firestore::util::Status::~Status() [function] [call site] 00053
3 firebase::firestore::model::FieldPath::FromServerFormatView(absl::lts_20211102::string_view)::$_1::operator()() const [function] [call site] 00054
3 firebase::firestore::util::Status::operator=(firebase::firestore::util::Status&&) [function] [call site] 00055
3 firebase::firestore::util::Status::ok() const [function] [call site] 00056
3 firebase::firestore::util::StatusOr ::StatusOr(firebase::firestore::util::Status&&) [function] [call site] 00057
3 std::__1::basic_string , std::__1::allocator > firebase::firestore::util::StringFormat (char const*, absl::lts_20211102::string_view const&) [function] [call site] 00058
3 firebase::firestore::util::Status::Status(firebase::firestore::Error, std::__1::basic_string , std::__1::allocator >) [function] [call site] 00059
3 firebase::firestore::util::StatusOr ::StatusOr(firebase::firestore::util::Status&&) [function] [call site] 00060
3 firebase::firestore::util::Status::~Status() [function] [call site] 00061
3 firebase::firestore::model::FieldPath::FieldPath(std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >&&) [function] [call site] 00062
4 firebase::firestore::model::impl::BasePath ::BasePath(std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >&&) [function] [call site] 00063
3 firebase::firestore::util::StatusOr ::StatusOr(firebase::firestore::model::FieldPath&&) [function] [call site] 00064
4 firebase::firestore::util::internal_statusor::StatusOrData ::StatusOrData(firebase::firestore::model::FieldPath&&) [function] [call site] 00065
5 firebase::firestore::model::FieldPath::FieldPath(firebase::firestore::model::FieldPath&&) [function] [call site] 00066
6 firebase::firestore::model::impl::BasePath ::BasePath(firebase::firestore::model::impl::BasePath &&) [function] [call site] 00067
5 void firebase::firestore::util::internal_statusor::StatusOrData ::MakeStatus<>() [function] [call site] 00068
6 void firebase::firestore::util::internal_statusor::PlacementNew (void*) [function] [call site] 00069
7 firebase::firestore::util::Status::Status() [function] [call site] 00070
5 firebase::firestore::model::impl::BasePath ::~BasePath() [function] [call site] 00071
3 firebase::firestore::model::impl::BasePath ::~BasePath() [function] [call site] 00072
3 firebase::firestore::util::Status::~Status() [function] [call site] 00073
1 firebase::firestore::util::internal_statusor::StatusOrData ::~StatusOrData() [function] [call site] 00074
2 firebase::firestore::util::internal_statusor::StatusOrData ::ok() const [function] [call site] 00075
2 firebase::firestore::util::Status::~Status() [function] [call site] 00076
2 firebase::firestore::model::impl::BasePath ::~BasePath() [function] [call site] 00077
2 firebase::firestore::util::Status::~Status() [function] [call site] 00078
2 __clang_call_terminate [call site] 00079
1 __cxa_begin_catch [call site] 00080
1 __cxa_end_catch [call site] 00081