Fuzz introspector: firestore_resourcepath_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 4 2 :

['absl::lts_20211102::strings_internal::Splitter ::text() const', 'absl::lts_20211102::string_view::size() const']

0 4 absl::lts_20211102::strings_internal::SplitIterator >::SplitIterator(absl::lts_20211102::strings_internal::SplitIterator >::State,absl::lts_20211102::strings_internal::Splitter const*) call site: 00000 /src/firebase-ios-sdk/build/external/src/abseil-cpp/absl/strings/internal/str_split_internal.h:114
0 4 1 :

['absl::lts_20211102::string_view::empty() const']

0 4 absl::lts_20211102::string_view::find(absl::lts_20211102::string_view,unsignedlong)const call site: 00000 /src/firebase-ios-sdk/build/external/src/abseil-cpp/absl/strings/string_view.cc:83
0 0 None 33 108 firebase::firestore::util::(anonymousnamespace)::DefaultThrowHandler(firebase::firestore::util::ExceptionType,charconst*,charconst*,int,std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/firebase-ios-sdk/Firestore/core/src/util/exception.cc:50
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 None 0 4 absl::lts_20211102::strings_internal::SplitIterator >::SplitIterator(absl::lts_20211102::strings_internal::SplitIterator >::State,absl::lts_20211102::strings_internal::Splitter const*) call site: 00000 /src/firebase-ios-sdk/build/external/src/abseil-cpp/absl/strings/internal/str_split_internal.h:108
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::ResourcePath::FromString(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::ResourcePath::FromStringView(absl::lts_20211102::string_view) [function] [call site] 00004
3 absl::lts_20211102::string_view::string_view(char const*) [function] [call site] 00005
4 absl::lts_20211102::string_view::StrlenInternal(char const*) [function] [call site] 00006
5 strlen [call site] 00007
3 absl::lts_20211102::StrContains(absl::lts_20211102::string_view, absl::lts_20211102::string_view) [function] [call site] 00008
4 absl::lts_20211102::string_view::find(absl::lts_20211102::string_view, unsigned long) const [function] [call site] 00009
5 absl::lts_20211102::string_view::empty() const [function] [call site] 00010
5 absl::lts_20211102::string_view::empty() const [function] [call site] 00011
5 absl::lts_20211102::strings_internal::memmatch(char const*, unsigned long, char const*, unsigned long) [function] [call site] 00012
6 memchr [call site] 00013
6 memcmp [call site] 00014
5 __clang_call_terminate [call site] 00015
6 __cxa_begin_catch [call site] 00016
3 void firebase::firestore::util::ThrowInvalidArgument (char const*, absl::lts_20211102::string_view const&) [function] [call site] 00017
4 std::__1::basic_string , std::__1::allocator > firebase::firestore::util::StringFormat (char const*, absl::lts_20211102::string_view const&) [function] [call site] 00018
5 firebase::firestore::util::FormatArg::FormatArg (absl::lts_20211102::string_view const&) [function] [call site] 00019
6 firebase::firestore::util::FormatArg::FormatArg (absl::lts_20211102::string_view const&, firebase::firestore::util::internal::FormatChoice<5>) [function] [call site] 00020
7 absl::lts_20211102::AlphaNum::AlphaNum(absl::lts_20211102::string_view) [function] [call site] 00021
5 absl::lts_20211102::AlphaNum::Piece() const [function] [call site] 00022
5 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list ) [function] [call site] 00023
6 strlen [call site] 00024
6 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list )::$_1::operator()(char) const [function] [call site] 00025
7 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list )::$_0::operator()(std::__1::basic_string , std::__1::allocator >*) const [function] [call site] 00026
6 firebase::firestore::util::internal::StringFormatPieces(char const*, std::initializer_list )::$_1::operator()(char) const [function] [call site] 00027
4 firebase::firestore::util::Throw(firebase::firestore::util::ExceptionType, char const*, char const*, int, std::__1::basic_string , std::__1::allocator > const&) [function] [call site] 00028
3 absl::lts_20211102::strings_internal::ConvertibleToStringView::ConvertibleToStringView(absl::lts_20211102::string_view) [function] [call site] 00029
3 absl::lts_20211102::strings_internal::Splitter ::type, absl::lts_20211102::SkipEmpty, absl::lts_20211102::string_view> absl::lts_20211102::StrSplit (absl::lts_20211102::strings_internal::ConvertibleToStringView, char, absl::lts_20211102::SkipEmpty) [function] [call site] 00030
4 absl::lts_20211102::strings_internal::ConvertibleToStringView::value() const [function] [call site] 00031
4 absl::lts_20211102::ByChar::ByChar(char) [function] [call site] 00032
4 absl::lts_20211102::strings_internal::Splitter ::Splitter(absl::lts_20211102::string_view, absl::lts_20211102::ByChar, absl::lts_20211102::SkipEmpty) [function] [call site] 00033
3 firebase::firestore::model::ResourcePath::ResourcePath(std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >&&) [function] [call site] 00034
4 firebase::firestore::model::impl::BasePath ::BasePath(std::__1::vector , std::__1::allocator >, std::__1::allocator , std::__1::allocator > > >&&) [function] [call site] 00035
1 firebase::firestore::model::impl::BasePath ::~BasePath() [function] [call site] 00036
1 __cxa_begin_catch [call site] 00037
1 __cxa_end_catch [call site] 00038