Fuzz introspector
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Project functions overview

The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.

For further technical details on the meaning of columns in the below table, please see the Glossary .

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzzer details

Fuzzer: rtnetlink_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 73 54.4%
gold [1:9] 8 5.97%
yellow [10:29] 0 0.0%
greenyellow [30:49] 5 3.73%
lawngreen 50+ 48 35.8%
All colors 134 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
18 21 phosphor::network::netlink::intfFromRtm(std::__1::basic_string_view >) call site: 00021 _ZN7stdplus3raw8copyFromITkNS_17TriviallyCopyableENS_9EtherAddrETkNS0_6detail15ContainsTrivialENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEEEET_RKT0_
12 119 phosphor::network::netlink::detail::processMsg(std::__1::basic_string_view >&, bool&, stdplus::function_view >)>) call site: 00119 _ZN7stdplus3raw7refFromITkNS_17TriviallyCopyableE8nlmsgerrNS0_7AlignedETkNS0_6detail15ContainsTrivialERNSt3__117basic_string_viewIcNS5_11char_traitsIcEEEEKS2_EERT2_OT1_
10 54 phosphor::network::addrFromBuf(int, std::__1::basic_string_view >) call site: 00054 _ZN7stdplus3raw14copyFromStrictITkNS_17TriviallyCopyableENS_7In6AddrETkNS0_6detail15ContainsTrivialENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEEEET_RKT0_
9 92 rtmsg const& phosphor::network::netlink::extractRtData (std::__1::basic_string_view >&) call site: 00092 _ZN7stdplus3raw14copyFromStrictITkNS_17TriviallyCopyableENS_7In4AddrETkNS0_6detail15ContainsTrivialENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEEEET_RKT0_
6 3 ifinfomsg const& phosphor::network::netlink::extractRtData (std::__1::basic_string_view >&) call site: 00003 __cxa_allocate_exception
6 72 phosphor::network::netlink::addrFromRtm(std::__1::basic_string_view >) call site: 00072 __cxa_allocate_exception
5 48 phosphor::network::addrFromBuf(int, std::__1::basic_string_view >) call site: 00048 __cxa_allocate_exception
4 111 phosphor::network::netlink::detail::processMsg(std::__1::basic_string_view >&, bool&, stdplus::function_view >)>) call site: 00111 __cxa_allocate_exception
2 85 phosphor::network::netlink::neighFromRtm(std::__1::basic_string_view >) call site: 00085 _ZN7stdplus3raw8copyFromITkNS_17TriviallyCopyableENS_9EtherAddrETkNS0_6detail15ContainsTrivialENSt3__117basic_string_viewIcNS4_11char_traitsIcEEEEEET_RKT0_
1 70 phosphor::network::netlink::addrFromRtm(std::__1::basic_string_view >) call site: 00070

Runtime coverage analysis

Covered functions
27
Functions that are reachable but not covered
57
Reachable functions
103
Percentage of reachable functions covered
44.66%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/phosphor-networkd/builddir/../fuzzing/rtnetlink_fuzzer.cpp 1
/src/phosphor-networkd/builddir/../src/rtnetlink.cpp 8
/src/phosphor-networkd/builddir/../src/netlink.hpp 4
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/raw.hpp 14
/usr/local/bin/../include/c++/v1/optional 6
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/exception.cpp 1
/src/phosphor-networkd/builddir/../src/types.hpp 3
/src/phosphor-networkd/builddir/../src/netlink.cpp 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/ether.hpp 1
/src/phosphor-networkd/builddir/../src/util.hpp 1
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/ip.hpp 4
/usr/local/bin/../include/c++/v1/stdexcept 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/subnet.hpp 1
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/net/addr/subnet.cpp 1
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/function_view.hpp 4

Fuzzer: config_parser_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 115 31.7%
gold [1:9] 0 0.0%
yellow [10:29] 1 0.27%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 246 67.9%
All colors 362 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
24 132 auto phosphor::network::systemdParseLast (&)(std::__1::basic_string_view >) noexcept>(phosphor::network::config::Parser const&, std::__1::basic_string_view >, std::__1::basic_string_view >, std::__1::optional (&)(std::__1::basic_string_view >) noexcept) call site: 00132 _ZN3lg27detailsL11log_convertITpTkNS0_9log_flagsEJETkNS0_16string_like_typeENSt3__117basic_string_viewIcNS2_11char_traitsIcEEEEEEDaPKcNS0_8log_flagIJDpT_EEERKT0_
11 158 auto phosphor::network::systemdParseLast (&)(std::__1::basic_string_view >) noexcept>(phosphor::network::config::Parser const&, std::__1::basic_string_view >, std::__1::basic_string_view >, std::__1::optional (&)(std::__1::basic_string_view >) noexcept) call site: 00158 _ZN3lg27detailsL11log_convertITpTkNS0_9log_flagsEJETkNS0_16string_like_typeENSt3__14__fs10filesystem4pathEEEDaPKcNS0_8log_flagIJDpT_EEERKT0_
8 17 stdplus::fd::open(stdplus::basic_zstring >, stdplus::fd::OpenFlags, unsigned int) call site: 00017 __errno_location
7 264 void stdplus::fd::detail::opExact (stdplus::fd::Fd::*)(std::__1::span ) const, std::byte const>(char const*, std::__1::span (stdplus::fd::Fd::*&&)(std::__1::span ) const, stdplus::fd::Fd&, std::__1::span ) call site: 00264 __cxa_allocate_exception
7 305 stdplus::fd::AtomicWriter::commit(bool) call site: 00305 __clang_call_terminate
6 46 stdplus::fd::detail::drop(int&&) call site: 00046 __errno_location
6 213 stdplus::fd::mktemp(std::__1::basic_string , std::__1::allocator >&) call site: 00213 _ZN7stdplus4util7doErrorITkNSt3__19invocableIiEEZZNS_2fdL6mktempERNS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEENK3$_0clIiEEDaT_EUliE_EEviOSE_
4 68 stdplus::fd::detail::readAligned(stdplus::fd::Fd&, unsigned long, std::__1::span ) call site: 00068 __cxa_allocate_exception
4 73 std::__1::span stdplus::fd::detail::opAligned (stdplus::fd::Fd::*)(std::__1::span ) const, std::byte>(char const*, std::__1::span (stdplus::fd::Fd::*&&)(std::__1::span ) const, stdplus::fd::Fd&, unsigned long, std::__1::span ) call site: 00073 __cxa_allocate_exception
4 259 stdplus::fd::detail::writeExact(stdplus::fd::Fd&, std::__1::span ) call site: 00259 __cxa_allocate_exception
3 98 phosphor::network::config::Parser::setFile(std::__1::__fs::filesystem::path const&) call site: 00098 __cxa_begin_catch
3 295 stdplus::fd::AtomicWriter::commit(bool) call site: 00295

Runtime coverage analysis

Covered functions
136
Functions that are reachable but not covered
137
Reachable functions
365
Percentage of reachable functions covered
62.47%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/phosphor-networkd/builddir/../fuzzing/config_parser_fuzzer.cpp 1
/src/phosphor-networkd/builddir/../src/config_parser.cpp 22
/src/phosphor-networkd/builddir/../src/config_parser.hpp 18
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/zstring.hpp 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/create.hpp 1
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/flags.hpp 3
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/create.cpp 2
/usr/local/bin/../include/c++/v1/optional 10
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/util/cexec.hpp 4
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/dupable.cpp 1
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/impl.hpp 3
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/intf.hpp 3
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/handle/copyable.hpp 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/handle/managed.hpp 7
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/ops.hpp 5
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/managed.cpp 3
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/line.cpp 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/exception.cpp 3
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/exception.hpp 1
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/raw.hpp 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/ops.cpp 4
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/line.hpp 1
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/dupable.hpp 1
/src/phosphor-networkd/builddir/../src/util.cpp 6
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2.hpp 6
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2/conversion.hpp 17
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2/header.hpp 1
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2/flags.hpp 11
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/atomic.cpp 10
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/fmt.cpp 4
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/str/buf.hpp 13
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/fmt.hpp 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/str/cat.hpp 12
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/managed.hpp 2
/usr/local/bin/../include/c++/v1/stdexcept 1

Fuzzer: util_fuzzer

Call tree

The calltree shows the control flow of the fuzzer. This is overlaid with coverage information to display how much of the potential code a fuzzer can reach is in fact covered at runtime. In the following there is a link to a detailed calltree visualisation as well as a bitmap showing a high-level view of the calltree. For further information about these topics please see the glossary for full calltree and calltree overview

Call tree overview bitmap:

The distribution of callsites in terms of coloring is
Color Runtime hitcount Callsite count Percentage
red 0 97 61.7%
gold [1:9] 18 11.4%
yellow [10:29] 34 21.6%
greenyellow [30:49] 7 4.45%
lawngreen 50+ 1 0.63%
All colors 157 100

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
36 34 unsigned long stdplus::detail::strToUInt<(unsigned char)10, unsigned long, char>(std::__1::basic_string_view >) call site: 00034 _ZN7stdplus6detail8intToStrILh10ETkNSt3__18integralEmcEEPT1_S4_T0_h
27 106 unsigned long stdplus::detail::strToUInt<(unsigned char)16, unsigned long, char>(std::__1::basic_string_view >) call site: 00106 __cxa_allocate_exception
9 92 stdplus::InAnyAddr stdplus::FromStr ::operator() (std::__1::basic_string_view >) const call site: 00092 _ZN7stdplus6detail8strToIntILh16ETkNSt3__18integralEmcEET0_NS2_17basic_string_viewIT1_NS2_11char_traitsIS5_EEEE
7 2 phosphor::network::addrFromBuf(int, std::__1::basic_string_view >) call site: 00002 __cxa_allocate_exception
5 79 stdplus::In4Addr stdplus::FromStr ::operator() (std::__1::basic_string_view >) const call site: 00079 __cxa_allocate_exception
4 139 stdplus::Hostname::Hostname(std::__1::basic_string_view >) call site: 00139
3 86 stdplus::In4Addr stdplus::FromStr ::operator() (std::__1::basic_string_view >) const call site: 00086
2 25 LLVMFuzzerTestOneInput call site: 00025 _ZN7stdplus6detail8strToIntILh10ETkNSt3__18integralEmcEET0_NS2_17basic_string_viewIT1_NS2_11char_traitsIS5_EEEE
1 11 phosphor::network::addrFromBuf(int, std::__1::basic_string_view >) call site: 00011
1 15 phosphor::network::addrFromBuf(int, std::__1::basic_string_view >) call site: 00015
1 90 stdplus::In4Addr stdplus::FromStr ::operator() (std::__1::basic_string_view >) const call site: 00090
1 145 stdplus::Hostname::Hostname(std::__1::basic_string_view >) call site: 00145

Runtime coverage analysis

Covered functions
25
Functions that are reachable but not covered
82
Reachable functions
136
Percentage of reachable functions covered
39.71%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/phosphor-networkd/builddir/../fuzzing/util_fuzzer.cpp 1
/src/phosphor-networkd/builddir/../src/util.hpp 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/raw.hpp 3
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/ip.hpp 11
/usr/local/bin/../include/c++/v1/optional 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/exception.cpp 1
/usr/local/bin/../include/c++/v1/stdexcept 3
/src/phosphor-networkd/builddir/../src/util.cpp 5
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/numeric/str.hpp 13
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/str/conv.hpp 3
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/str/cat.hpp 4
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/numeric/endian.hpp 8
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/hostname.hpp 2
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/net/addr/hostname.cpp 5

Analyses and suggestions

Optimal target analysis

Remaining optimal interesting functions

The following table shows a list of functions that are optimal targets. Optimal targets are identified by finding the functions that in combination, yield a high code coverage.

Func name Functions filename Arg count Args Function depth hitcount instr count bb count cyclomatic complexity Reachable functions Incoming references total cyclomatic complexity Unreached complexity
sdbusplus::exception::throw_via_json(nlohmann::json_abi_v3_12_0::basic_json ,std::__1::allocator >,bool,long,unsignedlong,double,std::__1::allocator,nlohmann::json_abi_v3_12_0::adl_serializer,std::__1::vector >,void>const&,std::__1::source_locationconst&) /src/phosphor-networkd/builddir/../subprojects/sdbusplus/src/exception.cpp 2 ['N/A', 'N/A'] 14 0 116 21 16 115 0 261 249
phosphor::network::internal::executeCommandinChildProcess(stdplus::basic_zstring_view >,char**) /src/phosphor-networkd/builddir/../src/util.cpp 3 ['N/A', 'size_t', 'N/A'] 9 0 262 32 31 142 0 234 160
autolg2::details::log_conversion::apply_done >(std::__1::tuple const&)::{lambda((auto:1const&)...)#1}::operator() (lg2::levelconst&,std::__1::source_locationconst&,charconst*const&,charconst*const&,unsignedlongconst&,longconst&)const /src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2/conversion.hpp 7 ['N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A'] 4 0 41 3 2 30 0 137 131
lg2::details::cerr_extra_output(lg2::level,std::__1::source_locationconst&,std::__1::basic_string ,std::__1::allocator >const&) /src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/lg2_logger.cpp 3 ['int', 'N/A', 'N/A'] 2 0 294 57 50 14 0 83 79
sdbusplus::bus_t::new_system() /src/phosphor-networkd/builddir/../subprojects/sdbusplus/src/bus.cpp 1 ['N/A'] 5 0 76 13 13 38 0 83 67
stdplus::fd::detail::readAll(stdplus::fd::Fd&,stdplus::function_view (unsignedlong)>) /src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/ops.cpp 3 ['N/A', 'N/A', 'N/A'] 4 0 152 29 25 23 0 85 65
stdplus::fd::detail::sendAligned(stdplus::fd::Fd&,unsignedlong,std::__1::span ,stdplus::BitFlags ) /src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/ops.cpp 5 ['N/A', 'size_t', 'N/A', 'size_t', 'int'] 3 0 42 3 2 15 0 83 63
stdplus::fd::detail::writeAligned(stdplus::fd::Fd&,unsignedlong,std::__1::span ) /src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/ops.cpp 4 ['N/A', 'size_t', 'N/A', 'size_t'] 3 0 39 3 2 15 0 83 63
stdplus::fd::detail::recvAligned(stdplus::fd::Fd&,unsignedlong,std::__1::span ,stdplus::BitFlags ) /src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/ops.cpp 5 ['N/A', 'size_t', 'N/A', 'size_t', 'int'] 3 0 42 3 2 15 0 83 63
phosphor::network::netlink::detail::performRequest(int,void*,unsignedlong,stdplus::function_view >)>) /src/phosphor-networkd/builddir/../src/netlink.cpp 5 ['int', 'N/A', 'size_t', 'N/A', 'N/A'] 7 0 67 9 6 86 0 255 58

Implementing fuzzers that target the above functions will improve reachability such that it becomes:

Functions statically reachable by fuzzers
51.0%
445 / 870
Cyclomatic complexity statically reachable by fuzzers
65.0%
2760 / 4216

All functions overview

If you implement fuzzers for these functions, the status of all functions in the project will be:

Func name Functions filename Args Function call depth Reached by Fuzzers Runtime reached by Fuzzers Combined reached by Fuzzers Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

Fuzz engine guidance

This sections provides heuristics that can be used as input to a fuzz engine when running a given fuzz target. The current focus is on providing input that is usable by libFuzzer.

/src/phosphor-networkd/builddir/../fuzzing/rtnetlink_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['phosphor::network::netlink::intfFromRtm(std::__1::basic_string_view >)', 'phosphor::network::netlink::detail::processMsg(std::__1::basic_string_view >&, bool&, stdplus::function_view >)>)', 'phosphor::network::addrFromBuf(int, std::__1::basic_string_view >)', 'rtmsg const& phosphor::network::netlink::extractRtData(std::__1::basic_string_view >&)', 'ifinfomsg const& phosphor::network::netlink::extractRtData(std::__1::basic_string_view >&)', 'phosphor::network::netlink::addrFromRtm(std::__1::basic_string_view >)', 'phosphor::network::addrFromBuf(int, std::__1::basic_string_view >)', 'phosphor::network::netlink::detail::processMsg(std::__1::basic_string_view >&, bool&, stdplus::function_view >)>)', 'phosphor::network::netlink::neighFromRtm(std::__1::basic_string_view >)', 'phosphor::network::netlink::addrFromRtm(std::__1::basic_string_view >)']

/src/phosphor-networkd/builddir/../fuzzing/config_parser_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['auto phosphor::network::systemdParseLast (&)(std::__1::basic_string_view >) noexcept>(phosphor::network::config::Parser const&, std::__1::basic_string_view >, std::__1::basic_string_view >, std::__1::optional (&)(std::__1::basic_string_view >) noexcept)', 'auto phosphor::network::systemdParseLast (&)(std::__1::basic_string_view >) noexcept>(phosphor::network::config::Parser const&, std::__1::basic_string_view >, std::__1::basic_string_view >, std::__1::optional (&)(std::__1::basic_string_view >) noexcept)', 'stdplus::fd::open(stdplus::basic_zstring >, stdplus::fd::OpenFlags, unsigned int)', 'void stdplus::fd::detail::opExact (stdplus::fd::Fd::*)(std::__1::span) const, std::byte const>(char const*, std::__1::span (stdplus::fd::Fd::*&&)(std::__1::span) const, stdplus::fd::Fd&, std::__1::span)', 'stdplus::fd::AtomicWriter::commit(bool)', 'stdplus::fd::detail::drop(int&&)', 'stdplus::fd::mktemp(std::__1::basic_string, std::__1::allocator >&)', 'stdplus::fd::detail::readAligned(stdplus::fd::Fd&, unsigned long, std::__1::span)', 'std::__1::span stdplus::fd::detail::opAligned (stdplus::fd::Fd::*)(std::__1::span) const, std::byte>(char const*, std::__1::span (stdplus::fd::Fd::*&&)(std::__1::span) const, stdplus::fd::Fd&, unsigned long, std::__1::span)', 'stdplus::fd::detail::writeExact(stdplus::fd::Fd&, std::__1::span)']

/src/phosphor-networkd/builddir/../fuzzing/util_fuzzer.cpp

Dictionary

Use this with the libFuzzer -dict=DICT.file flag


Fuzzer function priority

Use one of these functions as input to libfuzzer with flag: -focus_function name

-focus_function=['unsigned long stdplus::detail::strToUInt<(unsigned char)10, unsigned long, char>(std::__1::basic_string_view >)', 'unsigned long stdplus::detail::strToUInt<(unsigned char)16, unsigned long, char>(std::__1::basic_string_view >)', 'stdplus::InAnyAddr stdplus::FromStr::operator()(std::__1::basic_string_view >) const', 'phosphor::network::addrFromBuf(int, std::__1::basic_string_view >)', 'stdplus::In4Addr stdplus::FromStr::operator()(std::__1::basic_string_view >) const', 'stdplus::Hostname::Hostname(std::__1::basic_string_view >)', 'stdplus::In4Addr stdplus::FromStr::operator()(std::__1::basic_string_view >) const', 'LLVMFuzzerTestOneInput', 'phosphor::network::addrFromBuf(int, std::__1::basic_string_view >)', 'phosphor::network::addrFromBuf(int, std::__1::basic_string_view >)']

Files and Directories in report

This section shows which files and directories are considered in this report. The main reason for showing this is fuzz introspector may include more code in the reasoning than is desired. This section helps identify if too many files/directories are included, e.g. third party code, which may be irrelevant for the threat model. In the event too much is included, fuzz introspector supports a configuration file that can exclude data from the report. See the following link for more information on how to create a config file: link

Files in report

Source file Reached by Covered by
[] []
/usr/local/bin/../include/c++/v1/optional ['rtnetlink_fuzzer', 'config_parser_fuzzer', 'util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2/header.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/subprojects/phosphor-dbus-interfaces/gen/xyz/openbmc_project/Common/error.hpp [] []
/usr/local/bin/../include/c++/v1/istream [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/line.cpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/atomic.cpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../src/util.hpp ['rtnetlink_fuzzer', 'util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/dupable.cpp ['config_parser_fuzzer'] []
/usr/local/bin/../include/c++/v1/__format/parser_std_format_spec.h [] []
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/src/exception.cpp [] []
/usr/local/bin/../include/c++/v1/__format/format_functions.h [] []
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/log.hpp [] []
/src/phosphor-networkd/builddir/../src/rtnetlink.cpp ['rtnetlink_fuzzer'] []
/usr/local/bin/../include/c++/v1/__exception/exception.h [] []
/src/phosphor-networkd/builddir/../fuzzing/rtnetlink_fuzzer.cpp ['rtnetlink_fuzzer'] []
/usr/local/bin/../include/c++/v1/variant [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/exception.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/intf.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/str/cat.hpp ['config_parser_fuzzer', 'util_fuzzer'] []
/usr/local/bin/../include/c++/v1/__algorithm/ranges_upper_bound.h [] []
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/lg2_logger.cpp [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/ops.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/subnet.hpp ['rtnetlink_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/net/addr/subnet.cpp ['rtnetlink_fuzzer'] []
/usr/local/bin/../include/c++/v1/string [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/create.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/dupable.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../src/config_parser.cpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../src/netlink.hpp ['rtnetlink_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/ether.hpp ['rtnetlink_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/elog.hpp [] []
/src/phosphor-networkd/builddir/../fuzzing/config_parser_fuzzer.cpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/nlohmann_json/single_include/nlohmann/json.hpp [] []
/src/phosphor-networkd/builddir/../fuzzing/util_fuzzer.cpp ['util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/include/sdbusplus/bus.hpp [] []
/usr/local/bin/../include/c++/v1/__iterator/move_iterator.h [] []
/src/phosphor-networkd/builddir/../src/config_parser.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/hostname.hpp ['util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/ops.cpp ['config_parser_fuzzer'] []
/usr/local/bin/../include/c++/v1/__format/format_arg_store.h [] []
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/include/sdbusplus/sdbus.hpp [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/net/addr/hostname.cpp ['util_fuzzer'] []
/src/phosphor-networkd/builddir/../src/types.hpp ['rtnetlink_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/impl.cpp [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/handle/copyable.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/numeric/endian.hpp ['util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/raw.hpp ['rtnetlink_fuzzer', 'config_parser_fuzzer', 'util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/exception.cpp ['rtnetlink_fuzzer', 'config_parser_fuzzer', 'util_fuzzer'] []
/usr/local/bin/../include/c++/v1/__format/write_escaped.h [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/function_view.hpp ['rtnetlink_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/ip.hpp ['rtnetlink_fuzzer', 'util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/str/conv.hpp ['util_fuzzer'] []
/usr/local/bin/../include/c++/v1/sstream [] []
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/src/server/transaction.cpp [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/flags.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2/conversion.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/src/bus.cpp [] []
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/fmt.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/handle/managed.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/impl.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/include/sdbusplus/message.hpp [] []
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2/flags.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/zstring_view.hpp [] []
/usr/local/bin/../include/c++/v1/__exception/exception_ptr.h [] []
/src/phosphor-networkd/builddir/../src/netlink.cpp ['rtnetlink_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/util/cexec.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/managed.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/str/buf.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/numeric/str.hpp ['util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/create.cpp ['config_parser_fuzzer'] []
/usr/local/bin/../include/c++/v1/stdexcept ['rtnetlink_fuzzer', 'config_parser_fuzzer', 'util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/include/sdbusplus/exception.hpp [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/managed.cpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/zstring.hpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/subprojects/phosphor-logging/lib/lg2_eventfilter.cpp [] []
/src/phosphor-networkd/builddir/../src/util.cpp ['config_parser_fuzzer', 'util_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/fmt.cpp ['config_parser_fuzzer'] []
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/include/sdbusplus/server/transaction.hpp [] []
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/line.hpp ['config_parser_fuzzer'] []

Directories in report

Directory
/src/phosphor-networkd/builddir/subprojects/phosphor-logging/lib/
/src/phosphor-networkd/builddir/../fuzzing/
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/include/sdbusplus/server/
/src/phosphor-networkd/builddir/subprojects/phosphor-dbus-interfaces/gen/xyz/openbmc_project/Common/
/src/phosphor-networkd/builddir/../subprojects/nlohmann_json/single_include/nlohmann/
/src/phosphor-networkd/builddir/../src/
/src/phosphor-networkd/builddir/../subprojects/stdplus/include-fd/stdplus/fd/
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/include/sdbusplus/
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/str/
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/fd/
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/lg2/
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/util/
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/src/
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/net/addr/
/usr/local/bin/../include/c++/v1/__exception/
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/numeric/
/usr/local/bin/../include/c++/v1/
/src/phosphor-networkd/builddir/../subprojects/stdplus/src/net/addr/
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/handle/
/usr/local/bin/../include/c++/v1/__format/
/src/phosphor-networkd/builddir/../subprojects/stdplus/include/stdplus/
/usr/local/bin/../include/c++/v1/__iterator/
/src/phosphor-networkd/builddir/../subprojects/sdbusplus/src/server/
/usr/local/bin/../include/c++/v1/__algorithm/
/src/phosphor-networkd/builddir/../subprojects/phosphor-logging/lib/include/phosphor-logging/