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

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 8758 84.3%
gold [1:9] 26 0.25%
yellow [10:29] 1 0.00%
greenyellow [30:49] 5 0.04%
lawngreen 50+ 1592 15.3%
All colors 10382 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
3366 1818 check_stack_depth call site: 01818 makeOrderedSetArgs
432 6002 makeJsonIsPredicate call site: 06002 makeRangeVarFromQualifiedName
419 1393 new_head_cell call site: 01393 TableFuncTypeName
170 9725 _outGroupingSet call site: 09725 _outNode
153 1223 list_free_private call site: 01223 parsePartitionStrategy
151 857 list_make2_impl call site: 00857 processCASbits
130 8668 _outIntoClause call site: 08668 _outNode
125 5185 makeRangeVar call site: 05185 makeRecursiveViewSelect
119 5629 makeGroupingSet call site: 05629 scanner_errposition
117 7839 _outCreateStmt call site: 07839 _outCreateUserMappingStmt
116 5885 makeBoolExpr call site: 05885 scanner_errposition
107 7727 _outConstraint call site: 07727 _outCreateTableSpaceStmt

Runtime coverage analysis

Covered functions
415
Functions that are reachable but not covered
887
Reachable functions
1268
Percentage of reachable functions covered
30.05%
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
./test/fuzz/fuzz_parser.c 1
src/pg_query_parse.c 4
src/pg_query.c 8
src/postgres/src_backend_utils_misc_stack_depth.c 4
src/postgres/src_backend_utils_mmgr_mcxt.c 24
src/postgres/src_backend_utils_mmgr_aset.c 2
src/postgres/src_backend_utils_mb_mbutils.c 16
src/postgres/src_common_wchar.c 4
src/postgres/src_port_snprintf.c 23
src/postgres/src_port_strerror.c 3
src/postgres/src_backend_utils_error_elog.c 27
./src/postgres/include/utils/palloc.h 1
src/postgres/src_common_stringinfo.c 9
src/postgres/src_common_psprintf.c 2
src/postgres/src_backend_storage_ipc_ipc.c 1
src/postgres/src_backend_tcop_postgres.c 1
src/postgres/src_backend_utils_error_assert.c 1
src/postgres/src_backend_parser_parser.c 6
scan.l 17
scan.c 16
gram.y 43
gram.c 1
./src/postgres/include/port/pg_bitutils.h 3
src/postgres/src_common_kwlookup.c 1
./src/postgres/include/common/kwlookup.h 1
./src/postgres/include/mb/pg_wchar.h 5
src/postgres/src_backend_parser_scansup.c 4
src/postgres/src_backend_utils_adt_numutils.c 1
./src/postgres/include/common/int.h 1
src/postgres/src_backend_nodes_list.c 18
./src/postgres/include/nodes/nodes.h 1
./src/postgres/include/nodes/pg_list.h 5
src/postgres/src_backend_nodes_value.c 4
src/postgres/src_backend_nodes_makefuncs.c 19
src/postgres/src_backend_commands_define.c 1
src/postgres/src_backend_catalog_namespace.c 1
src/postgres/src_port_pgstrcasecmp.c 1
src/postgres/src_backend_nodes_copyfuncs.c 5
./src/postgres/include/copyfuncs.funcs.c 323
src/postgres/src_backend_nodes_bitmapset.c 3
src/postgres/src_backend_utils_adt_datum.c 3
./src/postgres/include/postgres.h 2
src/postgres/src_backend_utils_adt_expandeddatum.c 3
src/postgres/src_backend_nodes_extensible.c 1
src/postgres/src_backend_nodes_equalfuncs.c 6
./src/postgres/include/equalfuncs.funcs.c 270
src/postgres/src_backend_nodes_nodeFuncs.c 2
src/pg_query_outfuncs_json.c 11
./src/include/pg_query_outfuncs_defs.c 260
./src/include/pg_query_json_helper.c 2
./src/include/pg_query_enum_defs.c 65

Fuzzer: fuzz_plpgsql

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 7645 85.5%
gold [1:9] 49 0.54%
yellow [10:29] 41 0.45%
greenyellow [30:49] 6 0.06%
lawngreen 50+ 1192 13.3%
All colors 8933 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
1545 3638 _copyTypeName call site: 03638 makeOrderedSetArgs
827 2040 _copyColumnRef call site: 02040 _copyA_Expr
759 2877 list_copy_deep call site: 02877 copyObjectImpl
418 1392 new_head_cell call site: 01392 TableFuncTypeName
307 8106 plpgsql_mark_local_assignment_targets call site: 08106 plpgsql_dumptree
302 5313 list_truncate call site: 05313 makeRecursiveViewSelect
290 6143 list_make3_impl call site: 06143 makeRangeVarFromQualifiedName
258 5884 makeBoolExpr call site: 05884 check_indirection
234 1141 list_concat call site: 01141 parsePartitionStrategy
218 7523 plpgsql_peek call site: 07523 read_cursor_args
183 1837 bms_copy call site: 01837 _copyAggref
151 856 list_make2_impl call site: 00856 processCASbits

Runtime coverage analysis

Covered functions
474
Functions that are reachable but not covered
747
Reachable functions
1176
Percentage of reachable functions covered
36.48%
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
./test/fuzz/fuzz_plpgsql.c 1
src/pg_query_parse_plpgsql.c 10
src/pg_query.c 8
src/postgres/src_backend_utils_misc_stack_depth.c 4
src/postgres/src_backend_utils_mmgr_mcxt.c 25
src/postgres/src_backend_utils_mmgr_aset.c 2
src/postgres/src_backend_utils_mb_mbutils.c 16
src/postgres/src_common_wchar.c 4
src/postgres/src_port_snprintf.c 23
src/postgres/src_port_strerror.c 3
src/postgres/src_backend_utils_error_elog.c 29
./src/postgres/include/utils/palloc.h 1
src/postgres/src_common_stringinfo.c 10
src/postgres/src_common_psprintf.c 2
src/postgres/src_backend_storage_ipc_ipc.c 1
src/postgres/src_backend_tcop_postgres.c 1
src/postgres/src_backend_utils_error_assert.c 1
src/pg_query_parse.c 1
src/postgres/src_backend_parser_parser.c 6
scan.l 17
scan.c 16
gram.y 43
gram.c 1
./src/postgres/include/port/pg_bitutils.h 2
src/postgres/src_common_kwlookup.c 1
./src/postgres/include/common/kwlookup.h 1
./src/postgres/include/mb/pg_wchar.h 5
src/postgres/src_backend_parser_scansup.c 4
src/postgres/src_backend_utils_adt_numutils.c 1
./src/postgres/include/common/int.h 2
src/postgres/src_backend_nodes_list.c 19
./src/postgres/include/nodes/nodes.h 1
./src/postgres/include/nodes/pg_list.h 5
src/postgres/src_backend_nodes_value.c 4
src/postgres/src_backend_nodes_makefuncs.c 19
src/postgres/src_backend_commands_define.c 1
src/postgres/src_backend_catalog_namespace.c 8
src/postgres/src_port_pgstrcasecmp.c 1
src/postgres/src_backend_nodes_copyfuncs.c 5
./src/postgres/include/copyfuncs.funcs.c 323
src/postgres/src_backend_nodes_bitmapset.c 6
src/postgres/src_backend_utils_adt_datum.c 3
./src/postgres/include/postgres.h 14
src/postgres/src_backend_utils_adt_expandeddatum.c 3
src/postgres/src_backend_nodes_extensible.c 1
src/postgres/src_backend_nodes_equalfuncs.c 6
./src/postgres/include/equalfuncs.funcs.c 270
src/postgres/src_backend_nodes_nodeFuncs.c 3
src/postgres/src_backend_commands_functioncmds.c 1
src/postgres/src_backend_utils_adt_oid.c 1
src/postgres/src_backend_parser_parse_type.c 8
src/postgres/src_backend_parser_parse_node.c 3
src/postgres/src_backend_utils_cache_syscache.c 5
src/postgres/src_backend_catalog_catalog.c 2
./src/include/pg_query_pg_type.c 2
src/postgres/src_backend_utils_cache_lsyscache.c 9
src/postgres/src_port_strlcpy.c 1
./src/postgres/include/storage/itemptr.h 1
./src/postgres/include/storage/block.h 1
./src/postgres/include/access/htup_details.h 2
src/postgres/src_backend_utils_adt_format_type.c 3
src/postgres/src_backend_utils_adt_ruleutils.c 2
src/postgres/src_backend_utils_adt_varlena.c 3
src/postgres/src_backend_parser_parse_expr.c 1
src/postgres/src_backend_parser_parse_coerce.c 1
src/postgres/src_backend_parser_parse_collate.c 1
src/postgres/src_backend_optimizer_util_var.c 1
src/postgres/src_backend_utils_adt_arrayfuncs.c 8
src/postgres/src_backend_utils_adt_arrayutils.c 4
src/postgres/src_backend_utils_fmgr_fmgr.c 3
./src/postgres/include/access/tupmacs.h 2
src/postgres/src_backend_utils_adt_name.c 1
src/postgres/src_pl_plpgsql_src_pl_comp.c 24
src/postgres/src_pl_plpgsql_src_pl_scanner.c 15
src/postgres/src_backend_utils_adt_regproc.c 1
src/postgres/src_pl_plpgsql_src_pl_funcs.c 49
src/postgres/src_backend_utils_fmgr_funcapi.c 1
src/postgres/src_backend_utils_cache_funccache.c 1
src/postgres/src_backend_access_common_tupdesc.c 5
./src/postgres/include/access/tupdesc.h 1
pl_gram.c 1
pl_gram.y 29
src/pg_query_json_plpgsql.c 44
./src/include/pg_query_json_helper.c 2

Fuzzer: fuzz_protobuf

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 21816 90.8%
gold [1:9] 81 0.33%
yellow [10:29] 48 0.19%
greenyellow [30:49] 18 0.07%
lawngreen 50+ 2052 8.54%
All colors 24015 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
3371 1813 check_stack_depth call site: 01813 makeOrderedSetArgs
1416 19684 _fingerprintCallStmt call site: 19684 _fingerprintFuncExpr
985 21558 _fingerprintRawStmt call site: 21558 _fingerprintJsonOutput
835 13554 deparseVariableSetStmt call site: 13554 deparseAlterDefaultPrivilegesStmt
805 14397 deparseClosePortalStmt call site: 14397 deparseCreateFunctionStmt
680 18932 _fingerprintIntoClause call site: 18932 _fingerprintQuery
549 5885 makeBoolExpr call site: 05885 makeRangeVarFromQualifiedName
419 1393 new_head_cell call site: 01393 TableFuncTypeName
370 16612 _fingerprintRangeFunction call site: 16612 _fingerprintRangeTableFunc
365 7641 _outVariableSetStmt call site: 07641 _outCreateStmt
350 8181 _outTransactionStmt call site: 08181 _outCompositeTypeStmt
317 9055 _outSelectStmt call site: 09055 _outSelectStmt

Runtime coverage analysis

Covered functions
683
Functions that are reachable but not covered
1785
Reachable functions
2366
Percentage of reachable functions covered
24.56%
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
./test/fuzz/fuzz_protobuf.c 1
src/pg_query_parse.c 4
src/pg_query.c 8
src/postgres/src_backend_utils_misc_stack_depth.c 4
src/postgres/src_backend_utils_mmgr_mcxt.c 26
src/postgres/src_backend_utils_mmgr_aset.c 2
src/postgres/src_backend_utils_mb_mbutils.c 16
src/postgres/src_common_wchar.c 4
src/postgres/src_port_snprintf.c 23
src/postgres/src_port_strerror.c 3
src/postgres/src_backend_utils_error_elog.c 27
./src/postgres/include/utils/palloc.h 1
src/postgres/src_common_stringinfo.c 11
src/postgres/src_common_psprintf.c 2
src/postgres/src_backend_storage_ipc_ipc.c 1
src/postgres/src_backend_tcop_postgres.c 1
src/postgres/src_backend_utils_error_assert.c 1
src/postgres/src_backend_parser_parser.c 6
scan.l 17
scan.c 16
gram.y 43
gram.c 1
./src/postgres/include/port/pg_bitutils.h 6
src/postgres/src_common_kwlookup.c 1
./src/postgres/include/common/kwlookup.h 1
./src/postgres/include/mb/pg_wchar.h 5
src/postgres/src_backend_parser_scansup.c 4
src/postgres/src_backend_utils_adt_numutils.c 1
./src/postgres/include/common/int.h 1
src/postgres/src_backend_nodes_list.c 21
./src/postgres/include/nodes/nodes.h 1
./src/postgres/include/nodes/pg_list.h 9
src/postgres/src_backend_nodes_value.c 5
src/postgres/src_backend_nodes_makefuncs.c 19
src/postgres/src_backend_commands_define.c 1
src/postgres/src_backend_catalog_namespace.c 1
src/postgres/src_port_pgstrcasecmp.c 2
src/postgres/src_backend_nodes_copyfuncs.c 5
./src/postgres/include/copyfuncs.funcs.c 323
src/postgres/src_backend_nodes_bitmapset.c 8
src/postgres/src_backend_utils_adt_datum.c 3
./src/postgres/include/postgres.h 2
src/postgres/src_backend_utils_adt_expandeddatum.c 3
src/postgres/src_backend_nodes_extensible.c 1
src/postgres/src_backend_nodes_equalfuncs.c 6
./src/postgres/include/equalfuncs.funcs.c 270
src/postgres/src_backend_nodes_nodeFuncs.c 3
src/pg_query_outfuncs_protobuf.c 11
protobuf/pg_query.pb-c.c 279
./src/include/pg_query_outfuncs_defs.c 260
./src/include/pg_query_enum_defs.c 195
src/postgres/src_port_pg_bitutils.c 2
vendor/protobuf-c/protobuf-c.c 65
src/pg_query_deparse.c 4
src/pg_query_readfuncs_protobuf.c 4
./src/include/pg_query_readfuncs_defs.c 262
src/postgres_deparse.c 318
src/postgres/src_backend_utils_adt_ruleutils.c 1
src/postgres/src_port_strlcpy.c 1
src/pg_query_fingerprint.c 14
vendor/xxhash/xxhash.h 46
./src/postgres/include/lib/simplehash.h 15
./src/postgres/include/lib/ilist.h 3
src/postgres/src_common_hashfn.c 1
./src/postgres/include/lib/sort_template.h 4
./src/include/pg_query_fingerprint_defs.c 251
src/pg_query_normalize.c 12
src/pg_query_scan.c 2

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
XXH64 /src/libpg_query/vendor/xxhash/xxhash.h 3 ['N/A', 'size_t', 'size_t'] 3 0 12 3 2 7 0 76 74
protobuf_c_message_check /src/libpg_query/vendor/protobuf-c/protobuf-c.c 1 ['N/A'] 2 0 321 77 34 1 1 68 68
AllocSetRealloc /src/libpg_query/src/postgres/src_backend_utils_mmgr_aset.c 3 ['N/A', 'size_t', 'int'] 18 0 129 24 10 112 0 553 65
varstr_levenshtein_less_equal /src/libpg_query/./src/postgres/include/levenshtein.c 9 ['N/A', 'int', 'N/A', 'int', 'int', 'int', 'int', 'int', 'bool'] 18 0 825 162 59 92 0 505 64
protobuf_c_message_pack_to_buffer /src/libpg_query/vendor/protobuf-c/protobuf-c.c 2 ['N/A', 'N/A'] 11 0 151 29 11 37 282 194 59
pg_utf8_verifystr /src/libpg_query/src/postgres/src_common_wchar.c 2 ['N/A', 'int'] 2 0 143 35 14 10 0 58 53
XXH3_generateSecret /src/libpg_query/vendor/xxhash/xxhash.h 3 ['N/A', 'N/A', 'size_t'] 9 0 197 17 7 29 0 81 47

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

Functions statically reachable by fuzzers
56.9%
2633 / 4589
Cyclomatic complexity statically reachable by fuzzers
81.0%
20837 / 25653

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

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
_enumToStringObjectType 57 21 36.84% ['fuzz_parser', 'fuzz_protobuf']
_enumToStringAlterTableType 71 25 35.21% ['fuzz_parser', 'fuzz_protobuf']
pg_query_raw_parse 57 25 43.85% ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
exprLocation 351 126 35.89% ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
base_yyparse 17254 8364 48.47% ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
processCASbits 78 36 46.15% ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
yy_get_next_buffer 90 19 21.11% ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
AllocSetDelete 39 17 43.58% ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
dopr 304 138 45.39% ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
pg_query_raw_parse_plpgsql 41 17 41.46% ['fuzz_plpgsql']
raw_expression_tree_walker_impl 637 209 32.81% ['fuzz_plpgsql', 'fuzz_protobuf']
construct_array_builtin 75 25 33.33% ['fuzz_plpgsql']
deconstruct_array_builtin 54 14 25.92% ['fuzz_plpgsql']
format_type_extended 157 46 29.29% ['fuzz_plpgsql']
cfunc_resolve_polymorphic_argtypes 31 13 41.93% ['fuzz_plpgsql']
read_fetch_direction 95 45 47.36% ['fuzz_plpgsql']
read_cursor_args 109 38 34.86% ['fuzz_plpgsql']
_fingerprintIntoClause 74 22 29.72% ['fuzz_protobuf']
_fingerprintRowExpr 40 21 52.5% ['fuzz_protobuf']
_fingerprintFuncCall 92 42 45.65% ['fuzz_protobuf']
_fingerprintResTarget 34 17 50.0% ['fuzz_protobuf']
_fingerprintColumnDef 151 35 23.17% ['fuzz_protobuf']
_fingerprintJsonParseExpr 34 14 41.17% ['fuzz_protobuf']
_fingerprintSelectStmt 242 112 46.28% ['fuzz_protobuf']
_fingerprintCallStmt 44 14 31.81% ['fuzz_protobuf']
pg_query_deparse_protobuf_opts 45 24 53.33% ['fuzz_protobuf']
const_record_walker 203 94 46.30% ['fuzz_protobuf']
hash_bytes 92 24 26.08% ['fuzz_protobuf']
deparseAppendCommentsIfNeeded 32 3 9.375% ['fuzz_protobuf']
deparseStmt 350 42 12.0% ['fuzz_protobuf']
deparseCExpr 50 23 46.0% ['fuzz_protobuf']
deparseSubLink 51 28 54.90% ['fuzz_protobuf']
deparseTypeName 134 71 52.98% ['fuzz_protobuf']
deparseAExpr 174 55 31.60% ['fuzz_protobuf']
deparseFuncExpr 42 11 26.19% ['fuzz_protobuf']
deparseFuncCall 259 80 30.88% ['fuzz_protobuf']
deparseSQLValueFunction 54 9 16.66% ['fuzz_protobuf']
deparseColumnDef 46 20 43.47% ['fuzz_protobuf']
deparseIntoClause 39 15 38.46% ['fuzz_protobuf']
deparseRangeFunction 60 31 51.66% ['fuzz_protobuf']
deparseFetchStmt 53 21 39.62% ['fuzz_protobuf']
deparseSelectStmt 170 89 52.35% ['fuzz_protobuf']
deparseTransactionStmt 50 11 22.0% ['fuzz_protobuf']
deparseVariableSetStmt 86 32 37.20% ['fuzz_protobuf']
required_field_get_packed_size 45 20 44.44% ['fuzz_protobuf']
repeated_field_get_packed_size 70 22 31.42% ['fuzz_protobuf']
required_field_pack 46 21 45.65% ['fuzz_protobuf']
repeated_field_pack 94 14 14.89% ['fuzz_protobuf']
parse_member 47 25 53.19% ['fuzz_protobuf']
parse_required_member 119 52 43.69% ['fuzz_protobuf']
parse_oneof_member 49 8 16.32% ['fuzz_protobuf']

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/libpg_query/./src/include/pg_query_enum_defs.c ['fuzz_parser', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_port_pg_bitutils.c ['fuzz_protobuf'] []
/src/libpg_query/./src/include/pg_query_fingerprint_defs.c ['fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_port_strerror.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_utils_fmgr_fmgr.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_access_common_tupdesc.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_catalog_namespace.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/./src/postgres/include/kwlist_d.h [] []
/src/libpg_query/src/postgres/src_backend_utils_adt_expandeddatum.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_nodes_extensible.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_utils_adt_regproc.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_common_wchar.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/pg_query_deparse.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_utils_adt_arrayfuncs.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/./test/fuzz/fuzz_parser.c ['fuzz_parser'] []
/src/libpg_query/src/pg_query_outfuncs_protobuf.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/src/postgres/src_common_hashfn.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/src/pg_query_readfuncs_protobuf.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/src/postgres/src_common_stringinfo.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_utils_error_assert.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/./src/postgres/include/common/int.h ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_utils_mmgr_mcxt.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/./src/include/pg_query_pg_type.c ['fuzz_plpgsql'] []
/src/libpg_query/src/postgres/src_backend_catalog_catalog.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/./src/postgres/include/nodes/pg_list.h ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_parser_scansup.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/./src/postgres/include/lib/ilist.h ['fuzz_protobuf'] []
/src/libpg_query/./src/include/pg_query_outfuncs_defs.c ['fuzz_parser', 'fuzz_protobuf'] []
/src/libpg_query/src/pg_query_fingerprint.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/./src/postgres/include/access/tupmacs.h ['fuzz_plpgsql'] []
/src/libpg_query/src/postgres/src_backend_utils_misc_stack_depth.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/./src/include/pg_query_json_helper.c ['fuzz_parser', 'fuzz_plpgsql'] []
/src/libpg_query/./src/postgres/include/storage/block.h ['fuzz_plpgsql'] []
/src/libpg_query/./src/postgres/include/access/tupdesc.h ['fuzz_plpgsql'] []
/src/libpg_query/./src/postgres/include/lib/simplehash.h ['fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_common_psprintf.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_port_pgstrcasecmp.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_utils_mmgr_alignedalloc.c [] []
/src/libpg_query/src/postgres/src_backend_utils_adt_numutils.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_optimizer_util_var.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_pl_plpgsql_src_pl_funcs.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_utils_adt_datum.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_parser_parse_type.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_nodes_value.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_utils_mmgr_bump.c [] []
/src/libpg_query/./test/fuzz/fuzz_plpgsql.c ['fuzz_plpgsql'] []
/src/libpg_query/./src/postgres/include/common/kwlookup.h ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/vendor/protobuf-c/protobuf-c.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/src/postgres/src_port_strlcpy.c ['fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_plpgsql']
/src/libpg_query/./src/postgres/include/utils/memutils_memorychunk.h [] []
/src/libpg_query/src/postgres/src_port_qsort.c [] []
/src/libpg_query/./src/postgres/include/pl_unreserved_kwlist_d.h [] []
/src/libpg_query/src/postgres/src_backend_nodes_copyfuncs.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_utils_adt_name.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_nodes_equalfuncs.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_utils_cache_syscache.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/./test/fuzz/fuzz_protobuf.c ['fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_nodes_makefuncs.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/pg_query_parse.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_utils_adt_ruleutils.c ['fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/./src/postgres/include/copyfuncs.funcs.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/scan.l ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/./src/postgres/include/utils/memutils_internal.h [] []
/src/libpg_query/scan.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_commands_define.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/./src/postgres/include/postgres.h ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/./src/postgres/include/equalfuncs.funcs.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_commands_functioncmds.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_utils_adt_arrayutils.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_parser_parse_expr.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_utils_mmgr_aset.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/pl_gram.y ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_parser_parse_collate.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres_deparse.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/src/pg_query_scan.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/gram.y ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_catalog_pg_proc.c [] []
/src/libpg_query/./src/postgres/include/mb/pg_wchar.h ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/./src/postgres/include/lib/sort_template.h ['fuzz_protobuf'] []
/src/libpg_query/src/pg_query_normalize.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_utils_adt_format_type.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/./src/postgres/include/utils/palloc.h ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_parser_parse_coerce.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/./src/postgres/include/levenshtein.c [] []
/src/libpg_query/src/postgres/src_backend_utils_mmgr_slab.c [] []
/src/libpg_query/src/postgres/src_backend_utils_error_elog.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_parser_parser.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_utils_cache_funccache.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/./src/postgres/include/port/pg_bitutils.h ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_utils_adt_oid.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_pl_plpgsql_src_pl_scanner.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_utils_adt_varlena.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/pg_query_parse_plpgsql.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/./src/postgres/include/utils/ascii.h [] []
/src/libpg_query/src/pg_query_outfuncs_json.c ['fuzz_parser'] ['fuzz_parser']
/src/libpg_query/gram.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/./src/postgres/include/storage/itemptr.h ['fuzz_plpgsql'] []
/src/libpg_query/src/postgres/src_port_snprintf.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_tcop_postgres.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_utils_fmgr_funcapi.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_nodes_list.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_common_kwlookup.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/./src/postgres/include/port/simd.h [] []
/src/libpg_query/./src/postgres/include/nodes/nodes.h ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/src/postgres/src_backend_storage_ipc_ipc.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] []
/src/libpg_query/pl_gram.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_utils_mmgr_generation.c [] []
/src/libpg_query/protobuf/pg_query.pb-c.c ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/vendor/xxhash/xxhash.h ['fuzz_protobuf'] ['fuzz_protobuf']
/src/libpg_query/./src/postgres/include/access/htup_details.h ['fuzz_plpgsql'] []
/src/libpg_query/src/postgres/src_pl_plpgsql_src_pl_comp.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_nodes_bitmapset.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_utils_cache_lsyscache.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/postgres/src_backend_nodes_nodeFuncs.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_parser_parse_node.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/./src/postgres/include/pl_reserved_kwlist_d.h [] []
/src/libpg_query/./src/include/pg_query_readfuncs_defs.c ['fuzz_protobuf'] []
/src/libpg_query/src/pg_query_json_plpgsql.c ['fuzz_plpgsql'] ['fuzz_plpgsql']
/src/libpg_query/src/pg_query.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']
/src/libpg_query/src/postgres/src_backend_utils_mb_mbutils.c ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf'] ['fuzz_parser', 'fuzz_plpgsql', 'fuzz_protobuf']

Directories in report

Directory
/src/libpg_query/./src/postgres/include/
/src/libpg_query/./src/postgres/include/mb/
/src/libpg_query/./src/postgres/include/port/
/src/libpg_query/./src/postgres/include/nodes/
/src/libpg_query/protobuf/
/src/libpg_query/./src/postgres/include/storage/
/src/libpg_query/./src/postgres/include/access/
/src/libpg_query/./src/postgres/include/common/
/src/libpg_query/./src/include/
/src/libpg_query/src/postgres/
/src/libpg_query/src/
/src/libpg_query/./test/fuzz/
/src/libpg_query/./src/postgres/include/lib/
/src/libpg_query/
/src/libpg_query/vendor/xxhash/
/src/libpg_query/./src/postgres/include/utils/
/src/libpg_query/vendor/protobuf-c/