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: xmlsec_dsig_verify_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 3806 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 3806 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
3805 0 EP call site: 00000 xmlReadMemory

Runtime coverage analysis

Covered functions
0
Functions that are reachable but not covered
877
Reachable functions
877
Percentage of reachable functions covered
0.0%
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
xmlsec/apps/oss-fuzz/xmlsec_dsig_verify_target.c 4
libxml2/threads.c 10
libxml2/dict.c 21
libxml2/error.c 17
libxml2/xmlmemory.c 1
libxml2/globals.c 20
libxml2/encoding.c 15
libxml2/xpath.c 20
libxml2/xmlIO.c 17
libxml2/catalog.c 37
libxml2/xmlschemastypes.c 1
libxml2/relaxng.c 1
xmlsecxmlsec.c 3
xmlsecerrors.c 7
xmlsecio.c 16
xmlseclist.c 12
libxml2/xmlstring.c 19
libxml2/uri.c 35
xmlseckeysdata.c 14
xmlseckeyinfo.c 11
xmlsectransforms.c 37
xmlsecbase64.c 15
xmlsecenveloped.c 1
xmlsecc14n.c 7
xmlsecxpath.c 12
xmlsecrelationship.c 1
xmlsecxslt.c 2
libxslt/libxslt/security.c 4
libxslt/libxslt/extensions.c 1
libxslt/libxslt/xsltutils.c 2
libxml2/tree.c 71
libxml2/parserInternals.c 41
xmlsecopenssl/app.c 6
xmlsecopenssl/crypto.c 8
xmlsecdl.c 1
xmlseckeysmngr.c 8
xmlsecopenssl/keysstore.c 1
xmlsecbuffer.c 11
xmlsecopenssl/x509vfy.c 3
xmlsecopenssl/x509.c 1
libxml2/parser.c 142
libxml2/SAX2.c 6
libxml2/buf.c 19
libxml2/hash.c 28
libxml2/HTMLparser.c 2
libxml2/./include/private/memory.h 1
libxml2/chvalid.c 1
libxml2/./include/private/parser.h 2
libxml2/entities.c 10
libxml2/valid.c 42
libxml2/list.c 3
libxml2/xmlregexp.c 4
xmlsecxmltree.c 9
xmlsecxmldsig.c 18
xmlseckeys.c 11
xmlsecnodeset.c 3
xmlsecxmlenc.c 4
xmlsecparser.c 1
xmlsecmembuf.c 3

Fuzzer: xmlsec_keyload_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 229 26.9%
gold [1:9] 485 57.0%
yellow [10:29] 61 7.17%
greenyellow [30:49] 16 1.88%
lawngreen 50+ 59 6.94%
All colors 850 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
22 764 xmlSecOpenSSLAppKeyFromCertLoadBIO call site: 00764 xmlSecKeyEnsureData
22 820 xmlSecOpenSSLAppKeyCertLoadBIO call site: 00820 xmlSecKeyEnsureData
12 74 xmlSecIORegisterDefaultCallbacks call site: 00074 xmlSecIOFileExtractFilename
12 216 xmlNewMutex call site: 00216 xmlGetLastError
10 61 xmlSecPtrListEnsureSize call site: 00061 xmlSecIOCallbackDestroy
8 8 xmlInitRandom call site: 00008 xmlAbort
7 106 xmlSecIORegisterDefaultCallbacks call site: 00106 xmlSecError
7 114 xmlSecIORegisterDefaultCallbacks call site: 00114 xmlSecIOShutdown
6 255 xmlSecOpenSSLAppInit call site: 00255 xmlSecError
5 239 xmlSecTransformXsltInitialize call site: 00239 xmlGetLastError
5 267 xmlSecOpenSSLErrorsInit call site: 00267 xmlSecErrorsDefaultCallback
4 101 xmlInitGlobalState call site: 00101 xmlSecError

Runtime coverage analysis

Covered functions
219
Functions that are reachable but not covered
100
Reachable functions
219
Percentage of reachable functions covered
54.34%
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
xmlsec/apps/oss-fuzz/xmlsec_keyload_target.c 4
libxml2/threads.c 8
libxml2/dict.c 4
libxml2/error.c 5
libxml2/xmlmemory.c 1
libxml2/globals.c 8
libxml2/encoding.c 1
libxml2/xpath.c 2
libxml2/xmlIO.c 1
libxml2/catalog.c 1
libxml2/xmlschemastypes.c 1
libxml2/relaxng.c 1
xmlsecxmlsec.c 2
xmlsecerrors.c 7
xmlsecio.c 11
xmlseclist.c 10
libxml2/xmlstring.c 5
libxml2/uri.c 2
xmlseckeysdata.c 7
xmlseckeyinfo.c 7
xmlsectransforms.c 3
xmlsecbase64.c 1
xmlsecenveloped.c 1
xmlsecc14n.c 6
xmlsecxpath.c 3
xmlsecrelationship.c 1
xmlsecxslt.c 2
libxslt/libxslt/security.c 4
libxslt/libxslt/extensions.c 1
libxslt/libxslt/xsltutils.c 2
libxml2/tree.c 2
libxml2/parserInternals.c 1
xmlsecopenssl/app.c 11
xmlsecopenssl/crypto.c 7
xmlsecdl.c 1
xmlseckeys.c 9
xmlsecopenssl/evp.c 7
xmlsecbuffer.c 1
xmlsecopenssl/x509.c 8

Fuzzer: xmlsec_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 1131 45.4%
gold [1:9] 58 2.33%
yellow [10:29] 25 1.00%
greenyellow [30:49] 21 0.84%
lawngreen 50+ 1253 50.3%
All colors 2488 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
199 1847 xmlBuildURISafe call site: 01847 xmlCatalogXMLResolve
62 1784 xmlSplitQName4 call site: 01784 xmlParseXMLCatalogNodeList
50 762 xmlHashLookup call site: 00762 xmlParseXMLCatalogFile
42 689 xmlURIUnescapeString call site: 00689 xmlCatalogLocalResolve
36 1623 xmlCopyNamespace call site: 01623 xmlCopyDtd
32 2231 xmlExpandPEsInEntityValue call site: 02231 xmlLoadEntityContent
22 1461 nodePush call site: 01461 xmlParseTextDecl
21 2052 xmlSkipBlankCharsPE call site: 02052 xmlSkipBlankCharsPE
20 1316 xmlCtxtParseContentInternal call site: 01316 xmlNewElem
19 1718 xmlNodeGetContent call site: 01718 xmlBufGetNodeContent
18 1189 xmlParseAttValue call site: 01189 xmlSkipBlankChars
17 1433 xmlFreeNode call site: 01433 xmlNodeParseAttValue

Runtime coverage analysis

Covered functions
460
Functions that are reachable but not covered
201
Reachable functions
606
Percentage of reachable functions covered
66.83%
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
xmlsec/apps/oss-fuzz/xmlsec_target.c 2
libxml2/error.c 17
libxml2/globals.c 20
libxml2/threads.c 9
libxml2/dict.c 21
libxml2/xmlmemory.c 1
libxml2/encoding.c 15
libxml2/xpath.c 2
libxml2/xmlIO.c 15
libxml2/catalog.c 37
libxml2/xmlschemastypes.c 1
libxml2/relaxng.c 1
xmlsecbuffer.c 11
xmlsecerrors.c 1
libxml2/xmlstring.c 17
xmlsecparser.c 3
libxml2/parser.c 142
libxml2/parserInternals.c 40
libxml2/SAX2.c 6
libxml2/buf.c 19
libxml2/hash.c 27
libxml2/tree.c 65
libxml2/./include/private/memory.h 1
libxml2/HTMLparser.c 3
libxml2/chvalid.c 1
libxml2/./include/private/parser.h 2
libxml2/uri.c 35
libxml2/entities.c 10
libxml2/valid.c 40
libxml2/list.c 3
libxml2/xmlregexp.c 4

Fuzzer: xmlsec_keyinfo_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 1275 41.5%
gold [1:9] 426 13.8%
yellow [10:29] 44 1.43%
greenyellow [30:49] 18 0.58%
lawngreen 50+ 1308 42.5%
All colors 3071 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
170 2315 xmlBuildURISafe call site: 02315 xmlCatalogXMLResolve
64 1079 xmlErrMsgStr call site: 01079 xmlNewEntityInputStream
57 2014 xmlNewDtd call site: 02014 xmlCopyEntitiesTable
47 1926 xmlParseContentInternal call site: 01926 xmlCtxtParseEntity
34 2641 xmlParseStringPEReference call site: 02641 xmlLoadEntityContent
33 2226 xmlStrncat call site: 02226 xmlParseXMLCatalogOneNode
33 2281 xmlResolvePath call site: 02281 xmlParseURISafe
28 1174 xmlHashLookup call site: 01174 xmlParseXMLCatalogFile
26 2095 xmlNewDoc call site: 02095 xmlCopyDtd
24 1986 xmlNewNs call site: 01986 xmlStaticCopyNodeList
23 1873 nodePush call site: 01873 xmlParseContentInternal
22 2201 xmlGetPropNodeValueInternal call site: 02201 xmlParseXMLCatalogNodeList

Runtime coverage analysis

Covered functions
1007
Functions that are reachable but not covered
223
Reachable functions
725
Percentage of reachable functions covered
69.24%
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.
Warning: The number of covered functions are larger than the number of reachable functions. This means that there are more functions covered at runtime than are extracted using static analysis. This is likely a result of the static analysis component failing to extract the right call graph or the coverage runtime being compiled with sanitizers in code that the static analysis has not analysed. This can happen if lto/gold is not used in all places that coverage instrumentation is used.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
xmlsec/apps/oss-fuzz/xmlsec_keyinfo_target.c 4
libxml2/threads.c 10
libxml2/dict.c 21
libxml2/error.c 17
libxml2/xmlmemory.c 1
libxml2/globals.c 20
libxml2/encoding.c 15
libxml2/xpath.c 4
libxml2/xmlIO.c 15
libxml2/catalog.c 37
libxml2/xmlschemastypes.c 1
libxml2/relaxng.c 1
xmlsecxmlsec.c 2
xmlsecerrors.c 7
xmlsecio.c 11
xmlseclist.c 10
libxml2/xmlstring.c 17
libxml2/uri.c 35
xmlseckeysdata.c 11
xmlseckeyinfo.c 13
xmlsectransforms.c 10
xmlsecbase64.c 2
xmlsecenveloped.c 1
xmlsecc14n.c 6
xmlsecxpath.c 3
xmlsecrelationship.c 1
xmlsecxslt.c 2
libxslt/libxslt/security.c 4
libxslt/libxslt/extensions.c 1
libxslt/libxslt/xsltutils.c 2
libxml2/tree.c 66
libxml2/parserInternals.c 41
xmlsecopenssl/app.c 2
xmlsecopenssl/crypto.c 5
xmlsecdl.c 1
libxml2/parser.c 142
libxml2/SAX2.c 6
libxml2/buf.c 19
libxml2/hash.c 27
libxml2/HTMLparser.c 2
libxml2/./include/private/memory.h 1
libxml2/chvalid.c 1
libxml2/./include/private/parser.h 2
libxml2/entities.c 10
libxml2/valid.c 40
libxml2/list.c 3
libxml2/xmlregexp.c 4
xmlsecxmltree.c 6
xmlseckeys.c 12
xmlsecbuffer.c 4
xmlsecnodeset.c 1
xmlsecxmlenc.c 4

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
xmlSchemaValidateStream /src/libxml2/xmlschemas.c 5 ['N/A', 'N/A', 'int', 'N/A', 'N/A'] 60 0 141 24 10 1191 0 16250 9054
xmlSecXsltPushBin /src/xmlsec/src/xslt.c 5 ['N/A', 'N/A', 'size_t', 'int', 'N/A'] 34 0 805 202 85 1181 0 14677 7116
xsltLoadStylesheetPI /src/libxslt/libxslt/xslt.c 1 ['N/A'] 30 0 398 68 26 857 0 10177 2342
xmlTextReaderRelaxNGValidate /src/libxml2/xmlreader.c 2 ['N/A', 'N/A'] 55 0 18 3 2 980 0 12722 1712
xmlTextReaderNextTree /src/libxml2/xmlreader.c 1 ['N/A'] 68 0 191 24 11 981 3 12636 1253
xmlSecOpenSSLKeyDataX509XmlRead /src/xmlsec/src/openssl/x509.c 4 ['N/A', 'N/A', 'N/A', 'N/A'] 14 0 74 18 9 285 0 1712 971
xmlSecEncCtxDecrypt /src/xmlsec/src/xmlenc.c 2 ['N/A', 'N/A'] 31 0 153 33 15 767 0 9187 832

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

Functions statically reachable by fuzzers
57.9%
2461 / 4233
Cyclomatic complexity statically reachable by fuzzers
64.0%
32969 / 51387

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.

xmlsec/apps/oss-fuzz/xmlsec_dsig_verify_target.c

Dictionary

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


xmlsec/apps/oss-fuzz/xmlsec_keyload_target.c

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=['xmlSecOpenSSLAppKeyFromCertLoadBIO', 'xmlSecOpenSSLAppKeyCertLoadBIO', 'xmlSecIORegisterDefaultCallbacks', 'xmlNewMutex', 'xmlSecPtrListEnsureSize', 'xmlInitRandom', 'xmlSecOpenSSLAppInit', 'xmlSecTransformXsltInitialize']

xmlsec/apps/oss-fuzz/xmlsec_target.c

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=['xmlBuildURISafe', 'xmlSplitQName4', 'xmlHashLookup', 'xmlURIUnescapeString', 'xmlCopyNamespace', 'xmlExpandPEsInEntityValue', 'nodePush', 'xmlSkipBlankCharsPE', 'xmlCtxtParseContentInternal', 'xmlNodeGetContent']

xmlsec/apps/oss-fuzz/xmlsec_keyinfo_target.c

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=['xmlBuildURISafe', 'xmlErrMsgStr', 'xmlNewDtd', 'xmlParseContentInternal', 'xmlParseStringPEReference', 'xmlStrncat', 'xmlResolvePath', 'xmlHashLookup', 'xmlNewDoc', 'xmlNewNs']

Runtime coverage analysis

This section shows analysis of runtime coverage data.

For futher technical details on how this section is generated, please see the Glossary .

Complex functions with low coverage

Func name Function total lines Lines covered at runtime percentage covered Reached by fuzzers
xmlSecKeyDataIdsRegisterDefault 33 12 36.36% ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlSecOpenSSLAppKeyCertLoadBIO 65 28 43.07% ['xmlsec_keyload_fuzzer']
xmlSecOpenSSLAppKeyFromCertLoadBIO 55 19 34.54% ['xmlsec_keyload_fuzzer']
xmlSecTransformIdsRegisterDefault 57 18 31.57% ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlSecCheckVersionExt 31 14 45.16% ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlSAX2ExternalSubset 76 7 9.210% ['xmlsec_keyinfo_fuzzer', 'xmlsec_fuzzer']
xmlSAX2AttributeNs 144 69 47.91% ['xmlsec_keyinfo_fuzzer', 'xmlsec_fuzzer']
xmlErrString 321 143 44.54% ['xmlsec_keyinfo_fuzzer', 'xmlsec_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlNewNs 40 18 45.0% ['xmlsec_keyinfo_fuzzer', 'xmlsec_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlStaticCopyNodeList 62 19 30.64% ['xmlsec_keyinfo_fuzzer', 'xmlsec_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlBuildURISafe 237 37 15.61% ['xmlsec_keyinfo_fuzzer', 'xmlsec_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlDoErrValid 35 16 45.71% ['xmlsec_keyinfo_fuzzer', 'xmlsec_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlC14NProcessNode 122 63 51.63% ['xmlsec_keyinfo_fuzzer']
xmlC14NProcessAttrsAxis 112 44 39.28% ['xmlsec_keyinfo_fuzzer']
xmlNodeListGetStringInternal 48 10 20.83% ['xmlsec_keyinfo_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlBufGetNodeContent 31 13 41.93% ['xmlsec_keyinfo_fuzzer', 'xmlsec_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlNormalizePath 59 5 8.474% ['xmlsec_keyinfo_fuzzer', 'xmlsec_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlOutputBufferWrite 67 32 47.76% ['xmlsec_keyinfo_fuzzer']
xmlOutputBufferWriteQuotedString 36 10 27.77% ['xmlsec_keyinfo_fuzzer']
xmlOutputBufferFlush 44 20 45.45% ['xmlsec_keyinfo_fuzzer']
xmlXPathNodeSetMerge 49 26 53.06% ['xmlsec_keyinfo_fuzzer']
xmlXPathObjectCopy 38 17 44.73% ['xmlsec_keyinfo_fuzzer']
xmlXPathLocalNameFunction 37 19 51.35% ['xmlsec_keyinfo_fuzzer']
xmlXPathSubstringFunction 60 7 11.66% ['xmlsec_keyinfo_fuzzer']
xmlXPathReleaseObject 65 6 9.230% ['xmlsec_keyinfo_fuzzer']
xmlXPathCacheObjectCopy 31 9 29.03% ['xmlsec_keyinfo_fuzzer']
xmlXPathCacheNewNodeSet 46 8 17.39% ['xmlsec_keyinfo_fuzzer']
xmlXPathRunEval 31 14 45.16% ['xmlsec_keyinfo_fuzzer']
xmlXPathCompOpEvalFirst 109 42 38.53% ['xmlsec_keyinfo_fuzzer']
xmlXPathCompOpEvalFilterFirst 53 24 45.28% ['xmlsec_keyinfo_fuzzer']
xmlXPtrEval 54 28 51.85% ['xmlsec_keyinfo_fuzzer']
xmlSecTransformC14NExecute 45 19 42.22% ['xmlsec_keyinfo_fuzzer']
xmlSecKeyDataNameXmlRead 57 26 45.61% ['xmlsec_keyinfo_fuzzer']
xmlSecKeyDataEncryptedKeyXmlRead 44 23 52.27% ['xmlsec_keyinfo_fuzzer']
xmlSecKeyDataAgreementMethodXmlRead 61 23 37.70% ['xmlsec_keyinfo_fuzzer']
xmlSecPtrListCopy 40 13 32.5% ['xmlsec_keyinfo_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlSecOpenSSLKWRfc3394Initialize 63 34 53.96% ['xmlsec_keyinfo_fuzzer']
xmlSecOpenSSLKeyDataX509XmlRead 32 13 40.62% ['xmlsec_keyinfo_fuzzer']
xmlSecOpenSSLKeyDataRawX509CertBinRead 40 14 35.0% ['xmlsec_keyinfo_fuzzer']
xmlSecTransformChaCha20ParamsRead 69 23 33.33% ['xmlsec_keyinfo_fuzzer']
xmlSecTransformChaCha20Poly1305ParamsRead 67 30 44.77% ['xmlsec_keyinfo_fuzzer']
xmlSecTransformCtxPrepare 44 23 52.27% ['xmlsec_keyinfo_fuzzer', 'xmlsec_dsig_verify_fuzzer']
xmlSecKeyDataX509XmlRead 54 12 22.22% ['xmlsec_keyinfo_fuzzer']
xmlSecEncCtxDecryptToBuffer 40 17 42.5% ['xmlsec_keyinfo_fuzzer']
xmlSecXPathDataExecute 59 32 54.23% ['xmlsec_keyinfo_fuzzer']
xmlSecXPathDataCreate 31 15 48.38% ['xmlsec_keyinfo_fuzzer', 'xmlsec_dsig_verify_fuzzer']

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
[] []
/src/libxml2/./include/private/memory.h ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] []
/src/libxml2/catalog.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/buf.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/keysdata_helpers.c [] []
/src/xmlsec/src/c14n.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/list.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxslt/libxslt/imports.c [] []
/src/xmlsec/apps/oss-fuzz/xmlsec_keyinfo_target.c ['xmlsec_keyinfo_fuzzer'] ['xmlsec_keyinfo_fuzzer']
/src/libxslt/libxslt/preproc.c [] []
/src/xmlsec/src/openssl/kt_rsa.c [] []
/src/xmlsec/src/buffer.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/xmlsec.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/apps/oss-fuzz/xmlsec_target.c ['xmlsec_fuzzer'] ['xmlsec_fuzzer']
/src/xmlsec/src/parser.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer'] ['xmlsec_fuzzer']
/src/libxslt/libxslt/attrvt.c [] []
/src/libxml2/xinclude.c [] []
/src/xmlsec/src/xpath.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/parserInternals.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/xmlschemas.c [] []
/src/xmlsec/src/nodeset.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/digests.c [] []
/src/xmlsec/src/keys.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/kdf.c [] []
/src/xmlsec/src/enveloped.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/xmlregexp.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] []
/src/libxslt/libxslt/numbers.c [] []
/src/libxml2/tree.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/keysmngr.c ['xmlsec_dsig_verify_fuzzer'] []
/src/xmlsec/src/openssl/app.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/relaxng.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/./include/private/parser.h ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] []
/src/libxml2/entities.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxslt/libxslt/xslt.c [] []
/src/libxml2/xmlschemastypes.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/encoding.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/crypto.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/HTMLparser.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] []
/src/libxslt/libxslt/pattern.c [] []
/src/libxslt/libxslt/namespaces.c [] []
/src/libxml2/xpointer.c [] []
/src/libxml2/pattern.c [] []
/src/libxml2/threads.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/x509vfy.c ['xmlsec_dsig_verify_fuzzer'] []
/src/libxslt/libxslt/documents.c [] []
/src/libxml2/debugXML.c [] []
/src/libxml2/xmlsave.c [] []
/src/libxml2/dict.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxslt/libxslt/extensions.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/xmltree.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/kw_rfc_3394.c [] []
/src/xmlsec/src/errors.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/x509.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer'] ['xmlsec_keyload_fuzzer']
/src/xmlsec/src/openssl/signatures.c [] []
/src/xmlsec/src/transform_helpers.c [] []
/src/libxml2/HTMLtree.c [] []
/src/xmlsec/src/xmlenc.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyinfo_fuzzer']
/src/libxml2/./timsort.h [] []
/src/libxml2/hash.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/x509_helpers.c [] []
/src/libxslt/libxslt/extra.c [] []
/src/libxslt/libxslt/templates.c [] []
/src/xmlsec/src/openssl/kw_des.c [] []
/src/libxml2/globals.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/hmac.c [] []
/src/libxslt/libxslt/functions.c [] []
/src/libxml2/xmlIO.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/keysdata.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/relationship.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/dl.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/evp.c ['xmlsec_keyload_fuzzer'] ['xmlsec_keyload_fuzzer']
/src/xmlsec/apps/oss-fuzz/xmlsec_dsig_verify_target.c ['xmlsec_dsig_verify_fuzzer'] []
/src/libxslt/libxslt/attributes.c [] []
/src/xmlsec/apps/oss-fuzz/xmlsec_keyload_target.c ['xmlsec_keyload_fuzzer'] ['xmlsec_keyload_fuzzer']
/src/libxslt/libxslt/variables.c [] []
/src/libxml2/c14n.c [] []
/src/xmlsec/src/openssl/key_agrmnt.c [] []
/src/xmlsec/src/io.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/der_encoded_value.c [] []
/src/libxml2/valid.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/transforms.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/ciphers.c [] []
/src/xmlsec/src/kw_helpers.c [] []
/src/xmlsec/src/base64.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/xmlreader.c [] []
/src/xmlsec/src/list.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/openssl/keysstore.c ['xmlsec_dsig_verify_fuzzer'] []
/src/libxml2/error.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxslt/libxslt/xsltutils.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] []
/src/xmlsec/src/membuf.c ['xmlsec_dsig_verify_fuzzer'] []
/src/libxml2/xmlmemory.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxslt/libxslt/keys.c [] []
/src/libxslt/libxslt/xsltlocale.c [] []
/src/libxml2/./codegen/unicode.inc [] []
/src/libxml2/uri.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/keyinfo.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/xslt.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/parser.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxslt/libxslt/security.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/xpath.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxml2/chvalid.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] []
/src/xmlsec/src/openssl/symkeys.c [] []
/src/libxml2/SAX2.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/libxslt/libxslt/transform.c [] []
/src/libxml2/xmlstring.c ['xmlsec_dsig_verify_fuzzer', 'xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer'] ['xmlsec_keyload_fuzzer', 'xmlsec_fuzzer', 'xmlsec_keyinfo_fuzzer']
/src/xmlsec/src/xmldsig.c ['xmlsec_dsig_verify_fuzzer'] []

Directories in report

Directory
/src/libxml2/
/src/xmlsec/src/openssl/
/src/libxml2/./
/src/libxml2/./include/private/
/src/libxml2/./codegen/
/src/libxslt/libxslt/
/src/xmlsec/src/
/src/xmlsec/apps/oss-fuzz/