Fuzz introspector: filestorage_read_file_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
74 74 8 :

['std::__1::basic_string , std::__1::allocator >::basic_string(std::__1::basic_string , std::__1::allocator > const&)', 'operator new(unsigned long)', 'void cv::Ptr ::reset (cv::utils::trace::details::SyncTraceStorage*)', 'cv::utils::trace::details::SyncTraceStorage::SyncTraceStorage(std::__1::basic_string , std::__1::allocator > const&)', 'cv::utils::trace::details::getParameterTraceLocation()', 'std::__1::basic_string , std::__1::allocator >::~basic_string()', 'std::__1::basic_string , std::__1::allocator > std::__1::operator+ , std::__1::allocator >(std::__1::basic_string , std::__1::allocator >&&, char const*)', 'operator delete(void*)']

164 228 cv::utils::trace::details::TraceManager::TraceManager() call site: 00000 /src/opencv/modules/core/src/trace.cpp:846
4 4 2 :

['close', 'abort']

4 4 fuzzer_get_tmpfile(unsignedcharconst*,unsignedlong) call site: 00000 /src/./fuzzer_temp_file.h:47
2 2 1 :

['perror']

6 6 fuzzer_get_tmpfile(unsignedcharconst*,unsignedlong) call site: 00000 /src/./fuzzer_temp_file.h:41
0 0 None 4366 11553 cv::utils::trace::details::Region::Region(cv::utils::trace::details::Region::LocationStaticStorageconst&) call site: 00000 /src/opencv/modules/core/src/trace.cpp:442
0 0 None 630 630 cv::FileStorage::Impl::closeFile() call site: 00000 /src/opencv/modules/core/src/persistence.cpp:872
0 0 None 103 294 cv::HWFeatures::initialize() call site: 00000 /src/opencv/modules/core/src/system.cpp:434
0 0 None 103 288 cv::HWFeatures::initialize() call site: 00000 /src/opencv/modules/core/src/system.cpp:531
0 0 None 4 4 fuzzer_get_tmpfile(unsignedcharconst*,unsignedlong) call site: 00000 /src/./fuzzer_temp_file.h:31
0 0 None 4 4 fuzzer_get_tmpfile(unsignedcharconst*,unsignedlong) call site: 00000 /src/./fuzzer_temp_file.h:36
0 0 None 0 2302 cv::utils::logging::LogTagManager::get(std::__1::basic_string ,std::__1::allocator >const&) call site: 00000 /src/opencv/modules/core/src/utils/logtagmanager.cpp:107
0 0 None 0 246 cv::utils::trace::details::TraceManager::isActivated() call site: 00000 /src/opencv/modules/core/src/trace.cpp:899
0 0 None 0 28 __itt_get_groups call site: 00000 /src/opencv/3rdparty/ittnotify/src/ittnotify/ittnotify_static.c:984

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 FuzzerTemporaryFile::FuzzerTemporaryFile(unsigned char const*, unsigned long) [function] [call site] 00001
2 fuzzer_get_tmpfile(unsigned char const*, unsigned long) [function] [call site] 00002
3 strdup [call site] 00003
3 perror [call site] 00004
3 abort [call site] 00005
3 mkstemp [call site] 00006
3 perror [call site] 00007
3 abort [call site] 00008
3 fdopen [call site] 00009
3 perror [call site] 00010
3 close [call site] 00011
3 abort [call site] 00012
3 fwrite [call site] 00013
3 close [call site] 00014
3 fprintf [call site] 00015
3 abort [call site] 00016
3 fclose [call site] 00017
1 cv::FileStorage::FileStorage() [function] [call site] 00018
2 cv::Ptr ::Ptr() [function] [call site] 00019
2 cv::Ptr cv::makePtr (cv::FileStorage* const&) [function] [call site] 00020
3 cv::Ptr ::Ptr(std::__1::shared_ptr &&) [function] [call site] 00021
1 cv::FileStorage::~FileStorage() [function] [call site] 00022
1 FuzzerTemporaryFile::~FuzzerTemporaryFile() [function] [call site] 00023
2 fuzzer_release_tmpfile(char*) [function] [call site] 00024
3 unlink [call site] 00025
3 perror [call site] 00026