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

Fuzzer details

Fuzzer: xml_parse_fuzzer_US-ASCII

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 196 37.2%
gold [1:9] 23 4.37%
yellow [10:29] 19 3.61%
greenyellow [30:49] 8 1.52%
lawngreen 50+ 280 53.2%
All colors 526 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1318 1318 1 :

['externalEntityContentProcessor']

1318 1318 cdataSectionProcessor call site: 00277 /src/expat/expat/lib/xmlparse.c:4010
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00491 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00490 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
230
Functions that are reachable but not covered
38
Reachable functions
170
Percentage of reachable functions covered
77.65%
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
fuzz/xml_parse_fuzzer.c 2
lib/xmlparse.c 88
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parse_fuzzer_ISO-8859-1

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 196 37.2%
gold [1:9] 20 3.80%
yellow [10:29] 27 5.13%
greenyellow [30:49] 7 1.33%
lawngreen 50+ 276 52.4%
All colors 526 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1318 1318 1 :

['externalEntityContentProcessor']

1318 1318 cdataSectionProcessor call site: 00277 /src/expat/expat/lib/xmlparse.c:4010
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00491 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00490 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
230
Functions that are reachable but not covered
38
Reachable functions
170
Percentage of reachable functions covered
77.65%
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
fuzz/xml_parse_fuzzer.c 2
lib/xmlparse.c 88
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parse_fuzzer_UTF-16

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 196 37.2%
gold [1:9] 28 5.32%
yellow [10:29] 19 3.61%
greenyellow [30:49] 6 1.14%
lawngreen 50+ 277 52.6%
All colors 526 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1318 1318 1 :

['externalEntityContentProcessor']

1318 1318 cdataSectionProcessor call site: 00277 /src/expat/expat/lib/xmlparse.c:4010
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00491 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00490 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
229
Functions that are reachable but not covered
38
Reachable functions
170
Percentage of reachable functions covered
77.65%
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
fuzz/xml_parse_fuzzer.c 2
lib/xmlparse.c 88
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parse_fuzzer_UTF-16BE

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 196 37.2%
gold [1:9] 27 5.13%
yellow [10:29] 16 3.04%
greenyellow [30:49] 11 2.09%
lawngreen 50+ 276 52.4%
All colors 526 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1318 1318 1 :

['externalEntityContentProcessor']

1318 1318 cdataSectionProcessor call site: 00277 /src/expat/expat/lib/xmlparse.c:4010
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00491 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00490 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
229
Functions that are reachable but not covered
38
Reachable functions
170
Percentage of reachable functions covered
77.65%
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
fuzz/xml_parse_fuzzer.c 2
lib/xmlparse.c 88
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parsebuffer_fuzzer_UTF-16BE

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 199 38.0%
gold [1:9] 25 4.78%
yellow [10:29] 19 3.63%
greenyellow [30:49] 14 2.67%
lawngreen 50+ 266 50.8%
All colors 523 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00493 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00492 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 doContent call site: 00091 /src/expat/expat/lib/xmlparse.c:2784
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
226
Functions that are reachable but not covered
40
Reachable functions
169
Percentage of reachable functions covered
76.33%
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
fuzz/xml_parsebuffer_fuzzer.c 2
lib/xmlparse.c 87
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parsebuffer_fuzzer_ISO-8859-1

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 198 37.8%
gold [1:9] 31 5.92%
yellow [10:29] 15 2.86%
greenyellow [30:49] 8 1.52%
lawngreen 50+ 271 51.8%
All colors 523 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00493 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00492 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 doContent call site: 00091 /src/expat/expat/lib/xmlparse.c:2784
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
227
Functions that are reachable but not covered
40
Reachable functions
169
Percentage of reachable functions covered
76.33%
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
fuzz/xml_parsebuffer_fuzzer.c 2
lib/xmlparse.c 87
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parsebuffer_fuzzer_UTF-8

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 200 38.2%
gold [1:9] 23 4.39%
yellow [10:29] 19 3.63%
greenyellow [30:49] 13 2.48%
lawngreen 50+ 268 51.2%
All colors 523 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00493 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00492 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 doContent call site: 00091 /src/expat/expat/lib/xmlparse.c:2784
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
226
Functions that are reachable but not covered
40
Reachable functions
169
Percentage of reachable functions covered
76.33%
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
fuzz/xml_parsebuffer_fuzzer.c 2
lib/xmlparse.c 87
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parsebuffer_fuzzer_UTF-16

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 199 38.0%
gold [1:9] 23 4.39%
yellow [10:29] 23 4.39%
greenyellow [30:49] 7 1.33%
lawngreen 50+ 271 51.8%
All colors 523 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00493 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00492 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 doContent call site: 00091 /src/expat/expat/lib/xmlparse.c:2784
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
226
Functions that are reachable but not covered
40
Reachable functions
169
Percentage of reachable functions covered
76.33%
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
fuzz/xml_parsebuffer_fuzzer.c 2
lib/xmlparse.c 87
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parsebuffer_fuzzer_UTF-16LE

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 199 38.0%
gold [1:9] 28 5.35%
yellow [10:29] 24 4.58%
greenyellow [30:49] 8 1.52%
lawngreen 50+ 264 50.4%
All colors 523 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00493 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00492 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 doContent call site: 00091 /src/expat/expat/lib/xmlparse.c:2784
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
226
Functions that are reachable but not covered
40
Reachable functions
169
Percentage of reachable functions covered
76.33%
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
fuzz/xml_parsebuffer_fuzzer.c 2
lib/xmlparse.c 87
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parse_fuzzer_UTF-16LE

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 197 37.4%
gold [1:9] 30 5.70%
yellow [10:29] 16 3.04%
greenyellow [30:49] 10 1.90%
lawngreen 50+ 273 51.9%
All colors 526 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1318 1318 1 :

['externalEntityContentProcessor']

1318 1318 cdataSectionProcessor call site: 00277 /src/expat/expat/lib/xmlparse.c:4010
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00491 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00490 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
229
Functions that are reachable but not covered
38
Reachable functions
170
Percentage of reachable functions covered
77.65%
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
fuzz/xml_parse_fuzzer.c 2
lib/xmlparse.c 88
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parse_fuzzer_UTF-8

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 196 37.2%
gold [1:9] 23 4.37%
yellow [10:29] 20 3.80%
greenyellow [30:49] 8 1.52%
lawngreen 50+ 279 53.0%
All colors 526 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
1318 1318 1 :

['externalEntityContentProcessor']

1318 1318 cdataSectionProcessor call site: 00277 /src/expat/expat/lib/xmlparse.c:4010
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00491 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00490 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
229
Functions that are reachable but not covered
38
Reachable functions
170
Percentage of reachable functions covered
77.65%
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
fuzz/xml_parse_fuzzer.c 2
lib/xmlparse.c 88
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

Fuzzer: xml_parsebuffer_fuzzer_US-ASCII

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 199 38.0%
gold [1:9] 29 5.54%
yellow [10:29] 13 2.48%
greenyellow [30:49] 8 1.52%
lawngreen 50+ 274 52.3%
All colors 523 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
272 286 2 :

['accountingReportStats', 'accountingReportDiff']

272 286 accountingDiffTolerated call site: 00026 /src/expat/expat/lib/xmlparse.c:7780
259 259 1 :

['setContext']

259 259 startParsing call site: 00493 /src/expat/expat/lib/xmlparse.c:958
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3012
162 4114 15 :

['doCdataSection', 'freeBindings', 'memcmp', 'lookup', 'processInternalEntity', 'getContext', 'poolClear', 'reportComment', 'reportDefault', 'poolStoreString', 'storeAtts', 'accountingDiffTolerated', 'XmlUtf8Encode', 'accountingOnAbort', 'reportProcessingInstruction']

162 4844 doContent call site: 00099 /src/expat/expat/lib/xmlparse.c:3073
50 50 1 :

['generate_hash_secret_salt']

309 309 startParsing call site: 00492 /src/expat/expat/lib/xmlparse.c:956
11 43 2 :

['poolStoreString', 'handleUnknownEncoding']

11 49 processXmlDecl call site: 00058 /src/expat/expat/lib/xmlparse.c:4333
11 11 1 :

['handleUnknownEncoding']

11 11 initializeEncoding call site: 00017 /src/expat/expat/lib/xmlparse.c:4272
8 8 2 :

['strtoul', '__errno_location']

8 8 getDebugLevel call site: 00457 /src/expat/expat/lib/xmlparse.c:8393
6 6 1 :

['reportDefault']

6 6 doContent call site: 00091 /src/expat/expat/lib/xmlparse.c:2784
6 6 1 :

['reportDefault']

6 6 epilogProcessor call site: 00245 /src/expat/expat/lib/xmlparse.c:5664
6 6 1 :

['reportDefault']

6 6 reportProcessingInstruction call site: 00250 /src/expat/expat/lib/xmlparse.c:6298
6 6 1 :

['reportDefault']

6 6 reportComment call site: 00256 /src/expat/expat/lib/xmlparse.c:6323

Runtime coverage analysis

Covered functions
227
Functions that are reachable but not covered
40
Reachable functions
169
Percentage of reachable functions covered
76.33%
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
fuzz/xml_parsebuffer_fuzzer.c 2
lib/xmlparse.c 87
lib/xmltok.c 6
lib/siphash.h 6
lib/xmlrole.c 48
lib/xmltok_ns.c 5
lib/xmltok_impl.c 1

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
normal_contentTok /src/expat/expat/lib/xmltok_impl.c 4 ['struct.encoding *', 'char *', 'char *', 'char **'] 3 0 580 86 24 10 0 241 241
big2_contentTok /src/expat/expat/lib/xmltok_impl.c 4 ['struct.encoding *', 'char *', 'char *', 'char **'] 6 0 632 97 27 11 0 188 188
little2_contentTok /src/expat/expat/lib/xmltok_impl.c 4 ['struct.encoding *', 'char *', 'char *', 'char **'] 6 0 629 97 27 11 0 188 170
XML_ExternalEntityParserCreate /src/expat/expat/lib/xmlparse.c 3 ['struct.XML_ParserStruct *', 'char *', 'char *'] 16 0 482 28 11 161 0 1931 124
normal_prologTok /src/expat/expat/lib/xmltok_impl.c 4 ['struct.encoding *', 'char *', 'char *', 'char **'] 2 0 1362 206 40 7 0 155 91
XmlParseXmlDeclNS /src/expat/expat/lib/xmltok_ns.c 10 ['int', 'struct.encoding *', 'char *', 'char *', 'char **', 'char **', 'char **', 'char **', 'struct.encoding **', 'int *'] 3 0 52 3 2 7 0 84 72
big2_prologTok /src/expat/expat/lib/xmltok_impl.c 4 ['struct.encoding *', 'char *', 'char *', 'char **'] 3 0 1305 194 33 8 0 130 70
little2_prologTok /src/expat/expat/lib/xmltok_impl.c 4 ['struct.encoding *', 'char *', 'char *', 'char **'] 3 0 1299 194 33 8 0 130 70
XmlInitUnknownEncodingNS /src/expat/expat/lib/xmltok.c 4 ['char *', 'int *', 'func_type *', 'char *'] 3 0 48 6 3 8 0 55 49

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

Functions statically reachable by fuzzers
65.0%
236 / 362
Cyclomatic complexity statically reachable by fuzzers
79.0%
2966 / 3755

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 Fuzzers runtime hit Func lines hit % I Count BB Count Cyclomatic complexity Functions reached Reached by functions Accumulated cyclomatic complexity Undiscovered complexity

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
XML_Parse 58 18 31.03% ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8']
doProlog 911 478 52.46% ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']
processXmlDecl 80 32 40.0% ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']
storeAtts 306 110 35.94% ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']
getAttributeId 56 20 35.71% ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']
storeEntityValue 147 74 50.34% ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']

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/expat/expat/lib/siphash.h ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII'] ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']
[] []
/src/expat/expat/lib/xmltok.c ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII'] ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']
/src/expat/expat/fuzz/xml_parsebuffer_fuzzer.c ['xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parsebuffer_fuzzer_US-ASCII'] ['xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parsebuffer_fuzzer_US-ASCII']
/src/expat/expat/lib/xmltok_ns.c ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII'] ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']
/src/expat/expat/lib/xmlrole.c ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII'] ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']
/src/expat/expat/fuzz/xml_parse_fuzzer.c ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8'] ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8']
/src/expat/expat/lib/xmlparse.c ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII'] ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']
/src/expat/expat/lib/xmltok_impl.c ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII'] ['xml_parse_fuzzer_US-ASCII', 'xml_parse_fuzzer_ISO-8859-1', 'xml_parse_fuzzer_UTF-16', 'xml_parse_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_UTF-16BE', 'xml_parsebuffer_fuzzer_ISO-8859-1', 'xml_parsebuffer_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_UTF-16', 'xml_parsebuffer_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-16LE', 'xml_parse_fuzzer_UTF-8', 'xml_parsebuffer_fuzzer_US-ASCII']

Directories in report

Directory
/src/expat/expat/fuzz/
/src/expat/expat/lib/

Metadata section

This sections shows the raw data that is used to produce this report. This is mainly used for further processing and developer debugging.

Fuzzer Calltree file Program data file Coverage file
xml_parse_fuzzer_US-ASCII fuzzerLogFile-0-3eheG1EXk0.data fuzzerLogFile-0-3eheG1EXk0.data.yaml xml_parse_fuzzer_US-ASCII.covreport
xml_parse_fuzzer_ISO-8859-1 fuzzerLogFile-0-gkgWschHvc.data fuzzerLogFile-0-gkgWschHvc.data.yaml xml_parse_fuzzer_ISO-8859-1.covreport
xml_parse_fuzzer_UTF-16 fuzzerLogFile-0-Ux9PGJ3alA.data fuzzerLogFile-0-Ux9PGJ3alA.data.yaml xml_parse_fuzzer_UTF-16.covreport
xml_parse_fuzzer_UTF-16BE fuzzerLogFile-0-XjDIVQRvZO.data fuzzerLogFile-0-XjDIVQRvZO.data.yaml xml_parse_fuzzer_UTF-16BE.covreport
xml_parsebuffer_fuzzer_UTF-16BE fuzzerLogFile-0-azL5xg3sEQ.data fuzzerLogFile-0-azL5xg3sEQ.data.yaml xml_parsebuffer_fuzzer_UTF-16BE.covreport
xml_parsebuffer_fuzzer_ISO-8859-1 fuzzerLogFile-0-aBFKMM5Eu1.data fuzzerLogFile-0-aBFKMM5Eu1.data.yaml xml_parsebuffer_fuzzer_ISO-8859-1.covreport
xml_parsebuffer_fuzzer_UTF-8 fuzzerLogFile-0-dhn1nGfBak.data fuzzerLogFile-0-dhn1nGfBak.data.yaml xml_parsebuffer_fuzzer_UTF-8.covreport
xml_parsebuffer_fuzzer_UTF-16 fuzzerLogFile-0-TyqorsChzl.data fuzzerLogFile-0-TyqorsChzl.data.yaml xml_parsebuffer_fuzzer_UTF-16.covreport
xml_parsebuffer_fuzzer_UTF-16LE fuzzerLogFile-0-CcVzm8G4rj.data fuzzerLogFile-0-CcVzm8G4rj.data.yaml xml_parsebuffer_fuzzer_UTF-16LE.covreport
xml_parse_fuzzer_UTF-16LE fuzzerLogFile-0-8te94w3vU2.data fuzzerLogFile-0-8te94w3vU2.data.yaml xml_parse_fuzzer_UTF-16LE.covreport
xml_parse_fuzzer_UTF-8 fuzzerLogFile-0-iimGrVD4Kc.data fuzzerLogFile-0-iimGrVD4Kc.data.yaml xml_parse_fuzzer_UTF-8.covreport
xml_parsebuffer_fuzzer_US-ASCII fuzzerLogFile-0-cG99cObNFa.data fuzzerLogFile-0-cG99cObNFa.data.yaml xml_parsebuffer_fuzzer_US-ASCII.covreport