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: regexp

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 99 22.6%
gold [1:9] 49 11.2%
yellow [10:29] 6 1.37%
greenyellow [30:49] 5 1.14%
lawngreen 50+ 278 63.6%
All colors 437 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
14 123 xmlVRaiseError call site: 00123 xmlFormatError
10 409 xmlRegEpxFromParse call site: 00409 xmlRegexpErrMemory
8 9 xmlInitRandom call site: 00009 xmlAbort
7 101 xmlVRaiseError call site: 00101 xmlGetLineNo
5 169 xmlFAGenerateTransitions call site: 00169 xmlRegCopyAtom
5 429 xmlFuzzDataCleanup call site: 00429 xmlDictFree
4 175 xmlRegNewRange call site: 00175 xmlRegexpErrMemory
3 81 __xmlStructuredError call site: 00081 __xmlStructuredError
3 119 xmlVSetError call site: 00119 xmlCopyError
3 180 xmlRegFreeAtom call site: 00180 xmlFAGenerateTransitions
3 318 xmlFACompareAtoms call site: 00318 xmlRegStrEqualWildcard
2 113 xmlStrVASPrintf call site: 00113 xmlStrdup

Runtime coverage analysis

Covered functions
147
Functions that are reachable but not covered
41
Reachable functions
182
Percentage of reachable functions covered
77.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
fuzz/regexp.c 1
fuzz/fuzz.c 6
hash.c 4
threads.c 7
dict.c 6
error.c 13
xmlmemory.c 1
globals.c 12
encoding.c 1
xpath.c 2
xmlIO.c 1
catalog.c 1
xmlschemastypes.c 1
relaxng.c 1
xmlregexp.c 60
xmlstring.c 7
./include/private/memory.h 1
tree.c 2
parserInternals.c 1
chvalid.c 1
./codegen/unicode.inc 35

Fuzzer: html

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 564 45.5%
gold [1:9] 39 3.14%
yellow [10:29] 10 0.80%
greenyellow [30:49] 8 0.64%
lawngreen 50+ 618 49.8%
All colors 1239 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
73 906 xmlHashUpdateInternal call site: 00906 xmlCopyEntity
40 1027 xmlNewDocProp call site: 01027 xmlNewDocProp
26 694 xmlAllocOutputBuffer call site: 00694 xmlCharEncOutput
24 166 xmlUnlinkNode call site: 00166 xmlFreeEntitiesTable
19 982 xmlNewDocProp call site: 00982 xmlNodeParseAttValue
18 1006 xmlNewText call site: 01006 xmlNodeParseAttValue
16 1122 xmlNodeGetContent call site: 01122 xmlBufGetNodeContent
15 320 xmlVRaiseError call site: 00320 xmlRaiseMemoryError
14 761 htmlNodeDumpInternal call site: 00761 htmlParseMetaEncoding
13 1068 xmlCopyPropInternal call site: 01068 xmlSetTreeDoc
12 779 htmlNodeDumpInternal call site: 00779 xmlNsListDumpOutput
11 137 xmlFreeDtd call site: 00137 xmlFreeElementTable

Runtime coverage analysis

Covered functions
302
Functions that are reachable but not covered
142
Reachable functions
388
Percentage of reachable functions covered
63.4%
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
fuzz/html.c 1
fuzz/fuzz.c 7
hash.c 16
threads.c 7
dict.c 18
error.c 14
xmlmemory.c 1
globals.c 15
encoding.c 19
xpath.c 2
xmlIO.c 17
catalog.c 5
xmlschemastypes.c 1
relaxng.c 1
HTMLparser.c 56
SAX2.c 1
parserInternals.c 30
parser.c 8
buf.c 19
tree.c 50
valid.c 33
list.c 3
xmlregexp.c 4
entities.c 8
xmlstring.c 12
./include/private/memory.h 1
./include/private/parser.h 1
HTMLtree.c 9
xmlsave.c 3

Fuzzer: uri

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 41 12.4%
gold [1:9] 40 12.1%
yellow [10:29] 12 3.63%
greenyellow [30:49] 3 0.90%
lawngreen 50+ 234 70.9%
All colors 330 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
8 9 xmlInitRandom call site: 00009 xmlAbort
7 218 xmlURIEscape call site: 00218 xmlURIEscapeStr
5 323 xmlFuzzDataCleanup call site: 00323 xmlDictFree
4 134 LLVMFuzzerTestOneInput call site: 00134 fprintf
4 197 xmlURIEscape call site: 00197 xmlURIEscapeStr
2 150 xmlSaveUri call site: 00150 xmlSaveUriRealloc
2 159 xmlSaveUri call site: 00159 xmlSaveUriRealloc
1 27 xmlInitGlobalsInternal call site: 00027 xmlResetError
1 45 xmlGetThreadLocalStorage call site: 00045 pthread_getspecific
1 47 xmlGetThreadLocalStorage call site: 00047 xmlAbort
1 60 xmlRandom call site: 00060 xmlHashGrow
1 85 xmlParse3986Host call site: 00085 xmlParse3986DecOctet

Runtime coverage analysis

Covered functions
98
Functions that are reachable but not covered
26
Reachable functions
117
Percentage of reachable functions covered
77.78%
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
fuzz/uri.c 1
fuzz/fuzz.c 7
hash.c 4
threads.c 7
dict.c 6
error.c 3
xmlmemory.c 1
globals.c 6
encoding.c 1
xpath.c 2
xmlIO.c 1
catalog.c 1
xmlschemastypes.c 1
relaxng.c 1
uri.c 43
xmlstring.c 12
./include/private/memory.h 1

Fuzzer: xml

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 964 30.4%
gold [1:9] 122 3.85%
yellow [10:29] 49 1.54%
greenyellow [30:49] 43 1.35%
lawngreen 50+ 1988 62.7%
All colors 3166 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
73 1893 xmlBuildURISafe call site: 01893 xmlCatalogXMLResolve
70 811 xmlRMutexUnlock call site: 00811 xmlCatalogListXMLResolve
61 2644 htmlIsBooleanAttr call site: 02644 htmlAttrDumpOutput
56 1975 xmlInitializeCatalog call site: 01975 xmlACatalogResolve
35 1616 xmlCopyNamespaceList call site: 01616 xmlCopyDtd
35 2586 xmlOutputBufferWriteQuotedString call site: 02586 htmlNodeDumpInternal
27 1802 xmlStrncat call site: 01802 xmlParseXMLCatalogOneNode
18 1278 xmlParseAttValue call site: 01278 xmlSkipBlankChars
18 1569 xmlCopyPropInternal call site: 01569 xmlNewReconciledNs
17 1776 xmlGetPropNodeValueInternal call site: 01776 xmlParseXMLCatalogNodeList
16 1652 xmlCreateEnumeration call site: 01652 xmlCopyEntitiesTable
16 1710 xmlNodeGetContent call site: 01710 xmlBufGetNodeContent

Runtime coverage analysis

Covered functions
605
Functions that are reachable but not covered
168
Reachable functions
696
Percentage of reachable functions covered
75.86%
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
fuzz/xml.c 1
fuzz/fuzz.c 13
hash.c 29
threads.c 9
dict.c 21
error.c 16
xmlmemory.c 1
globals.c 23
encoding.c 19
xpath.c 2
xmlIO.c 31
catalog.c 37
xmlschemastypes.c 1
relaxng.c 1
xmlstring.c 17
parserInternals.c 43
SAX2.c 6
parser.c 152
buf.c 25
tree.c 67
valid.c 40
list.c 3
xmlregexp.c 4
entities.c 10
HTMLparser.c 4
./include/private/memory.h 1
chvalid.c 1
./include/private/parser.h 2
uri.c 35
xmlsave.c 35
HTMLtree.c 8

Fuzzer: xinclude

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 808 21.6%
gold [1:9] 236 6.32%
yellow [10:29] 56 1.50%
greenyellow [30:49] 44 1.17%
lawngreen 50+ 2588 69.3%
All colors 3732 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
70 808 xmlRMutexUnlock call site: 00808 xmlCatalogListXMLResolve
68 1895 xmlNodeGetBaseSafe call site: 01895 xmlCatalogXMLResolve
56 1972 xmlInitializeCatalog call site: 01972 xmlACatalogResolve
18 1275 xmlParseAttValue call site: 01275 xmlSkipBlankChars
17 1773 xmlGetPropNodeValueInternal call site: 01773 xmlParseXMLCatalogNodeList
17 1809 xmlGetNsListSafe call site: 01809 xmlParseXMLCatalogOneNode
14 1260 xmlParseStartTag2 call site: 01260 xmlParseStartTag
14 1376 xmlParseElementEnd call site: 01376 xmlParseEndTag1
14 1570 xmlSearchNsByHrefSafe call site: 01570 xmlSearchNsSafe
14 1754 xmlFinishDocument call site: 01754 xmlFreeDoc
13 626 xmlParsePI call site: 00626 xmlParseCatalogPI
12 3669 xmlXIncludeLoadTxt call site: 03669 xmlAddChild

Runtime coverage analysis

Covered functions
812
Functions that are reachable but not covered
133
Reachable functions
825
Percentage of reachable functions covered
83.88%
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
fuzz/xinclude.c 1
fuzz/fuzz.c 12
hash.c 30
threads.c 9
dict.c 21
error.c 15
xmlmemory.c 1
globals.c 20
encoding.c 16
xpath.c 139
xmlIO.c 18
catalog.c 37
xmlschemastypes.c 1
relaxng.c 1
xmlstring.c 18
parserInternals.c 42
SAX2.c 6
parser.c 143
buf.c 19
tree.c 83
valid.c 41
list.c 3
xmlregexp.c 4
entities.c 11
HTMLparser.c 2
./include/private/memory.h 1
chvalid.c 1
./include/private/parser.h 2
uri.c 39
xinclude.c 27
xpointer.c 8
./timsort.h 12

Fuzzer: xpath

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 1178 35.0%
gold [1:9] 159 4.72%
yellow [10:29] 51 1.51%
greenyellow [30:49] 20 0.59%
lawngreen 50+ 1956 58.1%
All colors 3364 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
131 1809 xmlBuildURISafe call site: 01809 xmlCatalogXMLResolve
86 1538 xmlNewNs call site: 01538 xmlStaticCopyNodeList
59 1949 xmlInitializeCatalog call site: 01949 xmlACatalogResolve
39 715 xmlHashLookup call site: 00715 xmlParseXMLCatalogFile
32 2193 xmlExpandPEsInEntityValue call site: 02193 xmlLoadEntityContent
26 1648 xmlNewDoc call site: 01648 xmlCopyDtd
22 667 xmlRMutexUnlock call site: 00667 xmlCatalogListXMLResolve
22 1425 nodePush call site: 01425 xmlParseTextDecl
21 2014 xmlSkipBlankCharsPE call site: 02014 xmlSkipBlankCharsPE
18 1153 xmlParseAttValue call site: 01153 xmlSkipBlankChars
18 1750 xmlGetPropNodeValueInternal call site: 01750 xmlParseXMLCatalogNodeList
17 1508 xmlParseReference call site: 01508 xmlDocCopyNode

Runtime coverage analysis

Covered functions
688
Functions that are reachable but not covered
190
Reachable functions
762
Percentage of reachable functions covered
75.07%
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
fuzz/xpath.c 1
fuzz/fuzz.c 7
hash.c 28
threads.c 9
dict.c 21
error.c 15
xmlmemory.c 1
globals.c 20
encoding.c 15
xpath.c 140
xmlIO.c 17
catalog.c 37
xmlschemastypes.c 1
relaxng.c 1
parser.c 141
parserInternals.c 40
SAX2.c 6
buf.c 19
HTMLparser.c 2
xmlstring.c 16
tree.c 65
./include/private/memory.h 1
chvalid.c 1
./include/private/parser.h 2
uri.c 35
entities.c 10
valid.c 41
list.c 3
xmlregexp.c 4
xpointer.c 8
./timsort.h 12

Fuzzer: api

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 873 16.8%
gold [1:9] 173 3.33%
yellow [10:29] 49 0.94%
greenyellow [30:49] 9 0.17%
lawngreen 50+ 4091 78.7%
All colors 5195 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
86 3829 xmlFACompareAtoms call site: 03829 xmlFARecurseDeterminism
68 1906 xmlNodeGetBaseSafe call site: 01906 xmlCatalogXMLResolve
57 1983 xmlInitializeCatalog call site: 01983 xmlACatalogResolve
36 3946 xmlRegStateAddTransTo call site: 03946 xmlFAGenerateTransitions
32 2227 xmlExpandPEsInEntityValue call site: 02227 xmlLoadEntityContent
23 2046 xmlParsePERefInternal call site: 02046 xmlSkipBlankCharsPE
22 805 xmlRMutexUnlock call site: 00805 xmlCatalogListXMLResolve
20 1461 xmlCtxtParseContentInternal call site: 01461 xmlParseTextDecl
19 835 xmlHashUpdateInternal call site: 00835 xmlFetchXMLCatalogFile
17 4101 xmlRegExecSetErrString call site: 04101 xmlFARegExecSaveInputString
15 1785 xmlGetPropNodeValueInternal call site: 01785 xmlParseXMLCatalogNodeList
13 630 xmlParsePI call site: 00630 xmlParseCatalogPI

Runtime coverage analysis

Covered functions
926
Functions that are reachable but not covered
153
Reachable functions
1006
Percentage of reachable functions covered
84.79%
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
fuzz/api.c 35
fuzz/fuzz.c 11
hash.c 31
threads.c 9
dict.c 21
error.c 15
xmlmemory.c 1
globals.c 23
encoding.c 19
xpath.c 2
xmlIO.c 29
catalog.c 37
xmlschemastypes.c 1
relaxng.c 1
tree.c 155
valid.c 101
list.c 12
xmlregexp.c 58
entities.c 20
parser.c 146
parserInternals.c 38
SAX2.c 6
buf.c 26
HTMLparser.c 7
xmlstring.c 18
./include/private/memory.h 1
chvalid.c 1
./include/private/parser.h 2
uri.c 36
HTMLtree.c 20
./codegen/unicode.inc 35
xmlsave.c 49

Fuzzer: valid

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 879 27.3%
gold [1:9] 100 3.11%
yellow [10:29] 76 2.36%
greenyellow [30:49] 31 0.96%
lawngreen 50+ 2127 66.1%
All colors 3213 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
86 2629 xmlFACompareAtoms call site: 02629 xmlFARecurseDeterminism
73 1892 xmlBuildURISafe call site: 01892 xmlCatalogXMLResolve
70 810 xmlRMutexUnlock call site: 00810 xmlCatalogListXMLResolve
56 1974 xmlInitializeCatalog call site: 01974 xmlACatalogResolve
36 2746 xmlRegStateAddTransTo call site: 02746 xmlFAGenerateTransitions
35 1615 xmlCopyNamespaceList call site: 01615 xmlCopyDtd
33 1801 xmlStrncat call site: 01801 xmlParseXMLCatalogOneNode
27 1771 xmlSplitQName4 call site: 01771 xmlParseXMLCatalogNodeList
17 2901 xmlRegExecSetErrString call site: 02901 xmlFARegExecSaveInputString
16 1709 xmlNodeGetContent call site: 01709 xmlBufGetNodeContent
15 1595 xmlNewDtd call site: 01595 xmlCopyEntitiesTable
14 1516 xmlCtxtParseEntity call site: 01516 xmlSetTreeDoc

Runtime coverage analysis

Covered functions
652
Functions that are reachable but not covered
197
Reachable functions
767
Percentage of reachable functions covered
74.32%
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
fuzz/valid.c 1
fuzz/fuzz.c 13
hash.c 29
threads.c 9
dict.c 21
error.c 16
xmlmemory.c 1
globals.c 20
encoding.c 15
xpath.c 2
xmlIO.c 20
catalog.c 37
xmlschemastypes.c 1
relaxng.c 1
xmlstring.c 16
parserInternals.c 43
SAX2.c 6
parser.c 157
buf.c 19
tree.c 70
valid.c 78
list.c 8
xmlregexp.c 58
entities.c 10
HTMLparser.c 3
./include/private/memory.h 1
chvalid.c 1
./include/private/parser.h 2
uri.c 35
./codegen/unicode.inc 35

Fuzzer: schema

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 1582 25.6%
gold [1:9] 412 6.67%
yellow [10:29] 193 3.12%
greenyellow [30:49] 91 1.47%
lawngreen 50+ 3896 63.1%
All colors 6174 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
66 2606 xmlBuildURI call site: 02606 xmlCatalogXMLResolve
57 2681 xmlInitializeCatalog call site: 02681 xmlACatalogResolve
51 2389 xmlCopyNamespaceList call site: 02389 xmlCopyDtd
40 5533 xmlSchemaBuildContentModelForElement call site: 05533 xmlSchemaBuildAContentModel
38 687 xmlStrncmp call site: 00687 xmlCatalogListXMLResolve
33 2203 xmlNewDocNode call site: 02203 xmlNodeParseAttValue
32 2060 xmlParseStartTag2 call site: 02060 xmlParseStartTag
27 6051 xmlSchemaValidatorPopElem call site: 06051 xmlAddChild
23 5894 xmlSchemaVAttributesComplex call site: 05894 xmlNewProp
19 4781 xmlSchemaGetCanonValue call site: 04781 xmlSchemaDateNormalize
18 2348 xmlCopyPropInternal call site: 02348 xmlNewReconciledNs
18 5697 xmlSchemaVDocWalk call site: 05697 xmlSchemaAssembleByXSI

Runtime coverage analysis

Covered functions
1070
Functions that are reachable but not covered
193
Reachable functions
1205
Percentage of reachable functions covered
83.98%
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
fuzz/schema.c 1
fuzz/fuzz.c 11
hash.c 30
threads.c 9
dict.c 21
error.c 16
xmlmemory.c 1
globals.c 20
encoding.c 15
xpath.c 2
xmlIO.c 19
catalog.c 37
xmlschemastypes.c 71
relaxng.c 1
xmlstring.c 20
xmlschemas.c 335
parserInternals.c 43
buf.c 19
xmlregexp.c 89
tree.c 85
SAX2.c 6
parser.c 144
valid.c 45
list.c 7
entities.c 10
HTMLparser.c 2
uri.c 36
./include/private/memory.h 1
chvalid.c 1
./include/private/parser.h 2
pattern.c 29
xmlreader.c 3
./codegen/unicode.inc 35

Fuzzer: lint

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 10182 87.0%
gold [1:9] 419 3.58%
yellow [10:29] 105 0.89%
greenyellow [30:49] 97 0.82%
lawngreen 50+ 891 7.61%
All colors 11694 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
1138 5887 xmlPatternCompileSafe call site: 05887 xmlSchemaParseRedefine
1040 3089 xmlSearchNs call site: 03089 xmlRelaxReadFile
662 5139 xmlFreePatternInternal call site: 05139 xmlSchemaParseNewDocWithContext
622 4410 xmlNodeSetContentInternal call site: 04410 xmlRelaxNGCleanupTree
524 1832 xmlFreeDoc call site: 01832 xmlSkipBlankCharsPE
474 9206 xmllintMain call site: 09206 xmlSchemaValidateStream
471 8586 xmlOpenCharEncodingHandler call site: 08586 xmlXIncludeLoadFallback
379 10812 xmlNodeDumpOutputInternal call site: 10812 xmllintShellSetContent
289 10101 xmlValidateDocumentInternal call site: 10101 xmllintShellRNGValidate
230 4178 xmlNewInputFromMemory call site: 04178 xmlRelaxNGCleanupDoc
208 1461 xmlLoadResource call site: 01461 xmlSkipBlankCharsPE
198 2890 xmlNewInputFromUrl call site: 02890 xmlRelaxNGParse

Runtime coverage analysis

Covered functions
569
Functions that are reachable but not covered
1481
Reachable functions
2009
Percentage of reachable functions covered
26.28%
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
fuzz/lint.c 2
xmlmemory.c 8
fuzz/fuzz.c 10
hash.c 31
threads.c 13
dict.c 24
error.c 18
globals.c 25
encoding.c 22
xpath.c 147
xmlIO.c 38
catalog.c 51
xmlschemastypes.c 72
relaxng.c 140
xmlstring.c 20
fuzz/../xmllint.c 30
parser.c 166
parserInternals.c 53
chvalid.c 1
./include/private/memory.h 1
uri.c 40
SAX2.c 7
buf.c 20
tree.c 109
./include/private/parser.h 2
valid.c 90
xmlregexp.c 92
entities.c 11
list.c 12
xmlschemas.c 343
xmlreader.c 48
./codegen/unicode.inc 35
pattern.c 32
HTMLparser.c 62
xinclude.c 29
xpointer.c 8
./timsort.h 12
HTMLtree.c 17
fuzz/../shell.c 21
xmlsave.c 45
c14n.c 39

Fuzzer: reader

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 1786 31.4%
gold [1:9] 295 5.19%
yellow [10:29] 102 1.79%
greenyellow [30:49] 52 0.91%
lawngreen 50+ 3445 60.6%
All colors 5680 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
277 4533 xmlNodeListGetStringInternal call site: 04533 xmlTextReaderExpand
150 502 xmlCtxtErrIO call site: 00502 xmlFreeTextReader
86 4227 xmlFACompareAtoms call site: 04227 xmlFARecurseDeterminism
68 2674 xmlNodeGetBaseSafe call site: 02674 xmlCatalogXMLResolve
62 4995 htmlIsBooleanAttr call site: 04995 xmlSaveSwitchEncoding
59 2854 xmlTextReaderValidatePop call site: 02854 xmlRelaxNGValidatePopElement
56 2751 xmlInitializeCatalog call site: 02751 xmlACatalogResolve
37 1489 xmlRMutexUnlock call site: 01489 xmlCatalogListXMLResolve
36 4344 xmlRegStateAddTransTo call site: 04344 xmlFAGenerateTransitions
34 4938 xmlOutputBufferWriteQuotedString call site: 04938 htmlNodeDumpInternal
33 1527 xmlNewParserCtxt call site: 01527 xmlParserInputBufferCreateFilename
26 4849 xmlAllocOutputBuffer call site: 04849 xmlCharEncOutput

Runtime coverage analysis

Covered functions
1033
Functions that are reachable but not covered
321
Reachable functions
1200
Percentage of reachable functions covered
73.25%
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
fuzz/reader.c 2
fuzz/fuzz.c 11
hash.c 30
threads.c 9
dict.c 22
error.c 15
xmlmemory.c 1
globals.c 23
encoding.c 19
xpath.c 139
xmlIO.c 30
catalog.c 37
xmlschemastypes.c 2
relaxng.c 58
xmlstring.c 19
xmlreader.c 85
buf.c 20
SAX2.c 6
parser.c 151
parserInternals.c 43
./include/private/memory.h 1
tree.c 89
valid.c 51
list.c 3
xmlregexp.c 59
entities.c 11
uri.c 39
xinclude.c 29
pattern.c 8
HTMLparser.c 4
xmlschemas.c 43
./include/private/parser.h 2
chvalid.c 1
xpointer.c 8
./timsort.h 12
./codegen/unicode.inc 35
xmlsave.c 31
HTMLtree.c 8

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
xmlSAX2StartElement /src/libxml2/SAX2.c 3 ['N/A', 'N/A', 'N/A'] 22 0 77 15 7 284 0 2945 244
xmlSAX2StartElementNs /src/libxml2/SAX2.c 9 ['N/A', 'N/A', 'N/A', 'N/A', 'int', 'N/A', 'int', 'int', 'N/A'] 18 0 982 148 59 254 0 2318 157
xmlXPathSubstringFunction /src/libxml2/xpath.c 2 ['N/A', 'int'] 14 0 485 88 34 145 0 925 80
xmlCatalogDump /src/libxml2/catalog.c 1 ['N/A'] 26 0 37 9 4 305 0 2846 74
xmlCatalogAdd /src/libxml2/catalog.c 3 ['N/A', 'N/A', 'N/A'] 41 0 73 12 5 581 0 7147 59
xmlXPathTranslateFunction /src/libxml2/xpath.c 2 ['N/A', 'int'] 14 0 435 72 28 137 0 856 48
xmlParseEntity /src/libxml2/parser.c 1 ['N/A'] 38 0 15 3 2 585 0 7142 40

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

Functions statically reachable by fuzzers
79.0%
2210 / 2799
Cyclomatic complexity statically reachable by fuzzers
90.0%
29136 / 32286

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.

fuzz/regexp.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=['xmlVRaiseError', 'xmlRegEpxFromParse', 'xmlInitRandom', 'xmlFAGenerateTransitions', 'xmlFuzzDataCleanup', 'xmlRegNewRange', '__xmlStructuredError', 'xmlVSetError', 'xmlRegFreeAtom']

fuzz/html.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=['xmlHashUpdateInternal', 'xmlNewDocProp', 'xmlAllocOutputBuffer', 'xmlUnlinkNode', 'xmlNewText', 'xmlNodeGetContent', 'xmlVRaiseError', 'htmlNodeDumpInternal', 'xmlCopyPropInternal']

fuzz/uri.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=['xmlInitRandom', 'xmlURIEscape', 'xmlFuzzDataCleanup', 'LLVMFuzzerTestOneInput', 'xmlSaveUri', 'xmlInitGlobalsInternal', 'xmlGetThreadLocalStorage']

fuzz/xml.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', 'xmlRMutexUnlock', 'htmlIsBooleanAttr', 'xmlInitializeCatalog', 'xmlCopyNamespaceList', 'xmlOutputBufferWriteQuotedString', 'xmlStrncat', 'xmlParseAttValue', 'xmlCopyPropInternal', 'xmlGetPropNodeValueInternal']

fuzz/xinclude.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=['xmlRMutexUnlock', 'xmlNodeGetBaseSafe', 'xmlInitializeCatalog', 'xmlParseAttValue', 'xmlGetPropNodeValueInternal', 'xmlGetNsListSafe', 'xmlParseStartTag2', 'xmlParseElementEnd', 'xmlSearchNsByHrefSafe', 'xmlFinishDocument']

fuzz/xpath.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', 'xmlNewNs', 'xmlInitializeCatalog', 'xmlHashLookup', 'xmlExpandPEsInEntityValue', 'xmlNewDoc', 'xmlRMutexUnlock', 'nodePush', 'xmlSkipBlankCharsPE', 'xmlParseAttValue']

fuzz/api.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=['xmlFACompareAtoms', 'xmlNodeGetBaseSafe', 'xmlInitializeCatalog', 'xmlRegStateAddTransTo', 'xmlExpandPEsInEntityValue', 'xmlParsePERefInternal', 'xmlRMutexUnlock', 'xmlCtxtParseContentInternal', 'xmlHashUpdateInternal', 'xmlRegExecSetErrString']

fuzz/valid.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=['xmlFACompareAtoms', 'xmlBuildURISafe', 'xmlRMutexUnlock', 'xmlInitializeCatalog', 'xmlRegStateAddTransTo', 'xmlCopyNamespaceList', 'xmlStrncat', 'xmlSplitQName4', 'xmlRegExecSetErrString', 'xmlNodeGetContent']

fuzz/schema.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=['xmlBuildURI', 'xmlInitializeCatalog', 'xmlCopyNamespaceList', 'xmlSchemaBuildContentModelForElement', 'xmlStrncmp', 'xmlNewDocNode', 'xmlParseStartTag2', 'xmlSchemaValidatorPopElem', 'xmlSchemaVAttributesComplex', 'xmlSchemaGetCanonValue']

fuzz/lint.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=['xmlPatternCompileSafe', 'xmlSearchNs', 'xmlFreePatternInternal', 'xmlNodeSetContentInternal', 'xmlFreeDoc', 'xmllintMain', 'xmlOpenCharEncodingHandler', 'xmlNodeDumpOutputInternal', 'xmlValidateDocumentInternal', 'xmlNewInputFromMemory']

fuzz/reader.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=['xmlNodeListGetStringInternal', 'xmlCtxtErrIO', 'xmlFACompareAtoms', 'xmlNodeGetBaseSafe', 'htmlIsBooleanAttr', 'xmlTextReaderValidatePop', 'xmlInitializeCatalog', 'xmlRMutexUnlock', 'xmlRegStateAddTransTo', 'xmlOutputBufferWriteQuotedString']

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
xmlErrString 321 171 53.27% ['lint', 'valid', 'xinclude', 'xml', 'reader', 'xpath', 'api', 'html', 'schema']
xmlCtxtResolveFromCatalog 32 17 53.12% ['lint', 'valid', 'xinclude', 'xml', 'reader', 'xpath', 'api', 'schema']
xmlXPathCacheObjectCopy 31 17 54.83% ['lint', 'xinclude', 'reader', 'xpath']
xmlXPathRunEval 31 14 45.16% ['lint', 'xinclude', 'reader', 'xpath']
xmlIOErr 154 9 5.844% ['lint', 'valid', 'xinclude', 'xml', 'reader', 'xpath', 'api', 'schema']
xmlSchemaItemTypeToStr 44 24 54.54% ['schema', 'lint']
xmlSchemaAddAnnotation 83 12 14.45% ['schema', 'lint']
xmlSchemaCheckSRCRedefineFirst 104 7 6.730% ['schema', 'lint']
xmlSchemaCheckSTPropsCorrect 53 20 37.73% ['schema', 'lint']
xmlSchemaCheckCOSSTRestricts 300 145 48.33% ['schema', 'lint']
xmlSchemaCheckCOSSTDerivedOK 43 20 46.51% ['schema', 'lint']
xmlSchemaCheckAttrUsePropsCorrect 68 12 17.64% ['schema', 'lint']
xmlSchemaCheckCOSCTExtends 56 29 51.78% ['schema', 'lint']
xmlSchemaCheckDerivationOKRestriction 98 41 41.83% ['schema', 'lint']
xmlSchemaLookupNamespace 45 14 31.11% ['schema', 'lint']
xmlSchemaValidateElemDecl 87 44 50.57% ['schema', 'lint']
xmlSchemaGetBuiltInType 99 48 48.48% ['schema', 'lint']
xmlSchemaCopyValue 91 32 35.16% ['schema', 'lint']
xmlSchemaGetCanonValue 260 86 33.07% ['schema', 'lint']
xmlSchemaValidateFacetInternal 168 65 38.69% ['schema', 'lint']
xmlC14NExecute 47 25 53.19% ['lint']
xmlC14NProcessNode 122 24 19.67% ['lint']
xmlC14NCheckForRelativeNamespaces 31 7 22.58% ['lint']
xmlC14NProcessNamespacesAxis 47 22 46.80% ['lint']
xmlExcC14NProcessNamespacesAxis 108 32 29.62% ['lint']
xmlC14NProcessAttrsAxis 112 39 34.82% ['lint']
xmlC11NNormalizeString 85 27 31.76% ['lint']
xmlPatMatch 176 56 31.81% ['lint', 'reader']
xmlValidGetValidElements 64 26 40.62% ['lint']
xmllintResourceLoader 52 13 25.0% ['lint']
streamFile 163 34 20.85% ['lint']
testSAX 49 12 24.48% ['lint']
parseHtml 49 14 28.57% ['lint']
parseXml 59 22 37.28% ['lint']
parseAndPrintFile 363 188 51.79% ['lint']
doXPathDump 60 23 38.33% ['lint']
xmlTextReaderSetStructuredErrorHandler 39 16 41.02% ['reader']
xmlTextReaderSetup 159 69 43.39% ['lint', 'reader']

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/hash.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/chvalid.c ['regexp', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'xml', 'xinclude', 'api', 'valid', 'schema', 'reader']
/src/libxml2/fuzz/valid.c ['valid'] ['valid']
/src/libxml2/xpath.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/./timsort.h ['xinclude', 'xpath', 'lint', 'reader'] []
/src/libxml2/fuzz/regexp.c ['regexp'] ['regexp']
/src/libxml2/encoding.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/c14n.c ['lint'] ['lint']
/src/libxml2/xmlmemory.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/catalog.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/SAX2.c ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/xmlreader.c ['schema', 'lint', 'reader'] ['lint', 'reader']
/src/libxml2/./include/private/parser.h ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] []
/src/libxml2/xmlsave.c ['html', 'xml', 'api', 'lint', 'reader'] ['xml', 'api', 'lint', 'reader']
/src/libxml2/pattern.c ['schema', 'lint', 'reader'] ['schema', 'lint']
/src/libxml2/fuzz/fuzz.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/xpointer.c ['xinclude', 'xpath', 'lint', 'reader'] ['xinclude', 'xpath', 'reader']
/src/libxml2/fuzz/xpath.c ['xpath'] ['xpath']
/src/libxml2/HTMLtree.c ['html', 'xml', 'api', 'lint', 'reader'] ['html', 'xml', 'api', 'reader']
/src/libxml2/fuzz/../shell.c ['lint'] []
/src/libxml2/parserInternals.c ['regexp', 'html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/parser.c ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/fuzz/xml.c ['xml'] ['xml']
/src/libxml2/fuzz/api.c ['api'] ['api']
/src/libxml2/./include/private/memory.h ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] []
/src/libxml2/uri.c ['uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/fuzz/schema.c ['schema'] ['schema']
/src/libxml2/error.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/xmlschemastypes.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/fuzz/../xmllint.c ['lint'] []
/src/libxml2/tree.c ['regexp', 'html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/xinclude.c ['xinclude', 'lint', 'reader'] ['xinclude', 'lint', 'reader']
/src/libxml2/HTMLparser.c ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['html', 'xml', 'xinclude', 'api', 'valid', 'lint']
/src/libxml2/relaxng.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/fuzz/uri.c ['uri'] ['uri']
/src/libxml2/xmlschemas.c ['schema', 'lint', 'reader'] ['schema']
/src/libxml2/list.c ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/threads.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/./codegen/unicode.inc ['regexp', 'api', 'valid', 'schema', 'lint', 'reader'] []
/src/libxml2/xmlstring.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/globals.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/fuzz/reader.c ['reader'] ['reader']
/src/libxml2/xmlIO.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/fuzz/html.c ['html'] ['html']
/src/libxml2/entities.c ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'reader']
/src/libxml2/fuzz/xinclude.c ['xinclude'] ['xinclude']
/src/libxml2/xmlregexp.c ['regexp', 'html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'api', 'valid', 'schema', 'reader']
/src/libxml2/buf.c ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/fuzz/lint.c ['lint'] ['lint']
/src/libxml2/valid.c ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['html', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']
/src/libxml2/dict.c ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader'] ['regexp', 'html', 'uri', 'xml', 'xinclude', 'xpath', 'api', 'valid', 'schema', 'lint', 'reader']

Directories in report

Directory
/src/libxml2/./
/src/libxml2/fuzz/
/src/libxml2/fuzz/../
/src/libxml2/
/src/libxml2/./codegen/
/src/libxml2/./include/private/