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

Fuzzers overview

Fuzzer Fuzzer filename Functions Reached Functions unreached Fuzzer depth Files reached Basic blocks reached Cyclomatic complexity Details
lua_stringtonumber_test /src/testdir/tests/capi/lua_stringtonumber_test.c 371 514 50 16 23382 5225 lua_stringtonumber_test.c
luaL_bufflen_test /src/testdir/tests/capi/luaL_bufflen_test.c 430 455 50 16 26431 5866 luaL_bufflen_test.c
luaL_traceback_test /src/testdir/tests/capi/luaL_traceback_test.c 446 439 50 16 27055 6020 luaL_traceback_test.c
luaL_buffaddr_test /src/testdir/tests/capi/luaL_buffaddr_test.c 430 455 50 16 26431 5867 luaL_buffaddr_test.c
luaL_buffsub_test /src/testdir/tests/capi/luaL_buffsub_test.cc 429 465 50 16 26445 5889 luaL_buffsub_test.cc
luaL_gsub_test /src/testdir/tests/capi/luaL_gsub_test.cc 434 460 50 16 26486 5924 luaL_gsub_test.cc
luaL_loadbufferx_test /src/testdir/tests/capi/luaL_loadbufferx_test.c 659 226 50 20 33437 7887 luaL_loadbufferx_test.c
lua_dump_test /src/testdir/tests/capi/lua_dump_test.c 679 207 50 21 34005 8032 lua_dump_test.c
fuzz_lua /src/fuzz_lua.c 752 141 50 20 37608 8789 fuzz_lua.c
luaL_dostring_test /src/testdir/tests/capi/luaL_dostring_test.c 682 543 50 21 34797 8169 luaL_dostring_test.c
luaL_loadbuffer_test /src/testdir/tests/capi/luaL_loadbuffer_test.c 681 544 50 21 34788 8165 luaL_loadbuffer_test.c
torture_test /src/testdir/tests/capi/torture_test.cc 415 596 50 16 25607 5702 torture_test.cc
luaL_loadstring_test /src/testdir/tests/capi/luaL_loadstring_test.c 682 543 50 21 34797 8169 luaL_loadstring_test.c
luaL_addgsub_test /src/testdir/tests/capi/luaL_addgsub_test.cc 432 462 50 16 26470 5909 luaL_addgsub_test.cc
lua_load_test /src/testdir/tests/capi/lua_load_test.cc 681 555 50 21 34798 8167 lua_load_test.cc
luaL_loadbuffer_proto_test /src/testdir/tests/capi/luaL_loadbuffer_proto/luaL_loadbuffer_proto_test.cc 848 594 51 22 36788 9572 luaL_loadbuffer_proto_test.cc

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

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 4135 90.2%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 4 0.08%
lawngreen 50+ 443 9.66%
All colors 4582 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
1083 2868 luaH_new call site: 02868 luaH_resize
656 1925 luaS_new call site: 01925 luaG_runerror
614 1304 callallpendingfinalizers call site: 01304 GCTM
402 436 freeobj call site: 00436 entergen
281 3986 luaV_tonumber_ call site: 03986 luaG_forerror
204 2655 luaH_resize call site: 02655 luaH_newkey
148 1154 separatetobefnz call site: 01154 propagateall
118 1032 internshrstr call site: 01032 luaM_toobig
107 4273 luaH_setint call site: 04273 luaH_newkey
101 284 luaF_closeupval call site: 00284 luaC_barrier_
69 860 luaF_close call site: 00860 prepcallclosemth
44 198 luaM_free_ call site: 00198 freeupval

Runtime coverage analysis

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

Files reached

filename functions hit
/src/testdir/tests/capi/lua_stringtonumber_test.c 1
/src/testdir/build/lua-master/source/lauxlib.c 9
/src/testdir/build/lua-master/source/lstate.c 19
/src/testdir/build/lua-master/source/lobject.c 21
/src/testdir/build/lua-master/source/ldo.c 28
/src/testdir/build/lua-master/source/lmem.c 5
/src/testdir/build/lua-master/source/lgc.c 71
/src/testdir/build/lua-master/source/ltable.c 53
/src/testdir/build/lua-master/source/lfunc.c 14
/src/testdir/build/lua-master/source/lstring.c 16
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 35
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 1
/src/testdir/build/lua-master/source/llex.c 1
/src/testdir/build/lua-master/source/lapi.c 9

Fuzzer: luaL_bufflen_test

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 3721 73.8%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 11 0.21%
lawngreen 50+ 1305 25.9%
All colors 5037 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
737 3532 luaF_newtbcupval call site: 03532 luaG_traceexec
646 2870 luaH_new call site: 02870 luaH_resize
213 1927 luaS_new call site: 01927 luaG_runerror
183 2678 luaV_finishset call site: 02678 luaG_typeerror
153 1767 luaD_precall call site: 01767 luaD_growstack
123 1376 luaD_callnoyield call site: 01376 luaE_checkcstack
123 1510 luaS_newlstr call site: 01510 luaD_throw
110 4570 newbuffsize call site: 04570 luaL_error
94 2317 getgeneric call site: 02317 luaG_runerror
87 581 genlink call site: 00581 traverseephemeron
87 1207 checkmajorminor call site: 01207 atomic2gen
81 670 traversetable call site: 00670 traverseproto

Runtime coverage analysis

Covered functions
187
Functions that are reachable but not covered
247
Reachable functions
430
Percentage of reachable functions covered
42.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
/src/testdir/tests/capi/luaL_bufflen_test.c 1
/src/testdir/build/lua-master/source/lauxlib.c 22
/src/testdir/build/lua-master/source/lstate.c 19
/src/testdir/build/lua-master/source/lobject.c 21
/src/testdir/build/lua-master/source/ldo.c 28
/src/testdir/build/lua-master/source/lmem.c 5
/src/testdir/build/lua-master/source/lgc.c 74
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 15
/src/testdir/build/lua-master/source/lstring.c 19
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 42
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 1
/src/testdir/build/lua-master/source/llex.c 1
/src/testdir/build/lua-master/source/lapi.c 34

Fuzzer: luaL_traceback_test

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 3843 74.5%
gold [1:9] 1 0.01%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1311 25.4%
All colors 5155 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
737 3530 luaF_newtbcupval call site: 03530 luaG_traceexec
646 2868 luaH_new call site: 02868 luaH_resize
213 1925 luaS_new call site: 01925 luaG_runerror
183 2676 luaV_finishset call site: 02676 luaG_typeerror
153 1765 luaD_precall call site: 01765 luaD_growstack
123 1374 luaD_callnoyield call site: 01374 luaE_checkcstack
123 1508 luaS_newlstr call site: 01508 luaD_throw
109 4579 newbuffsize call site: 04579 luaL_error
106 4969 luaL_traceback call site: 04969 luaL_addvalue
94 2315 getgeneric call site: 02315 luaG_runerror
87 579 genlink call site: 00579 traverseephemeron
87 1205 checkmajorminor call site: 01205 atomic2gen

Runtime coverage analysis

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

Files reached

filename functions hit
/src/testdir/tests/capi/luaL_traceback_test.c 1
/src/testdir/build/lua-master/source/lauxlib.c 29
/src/testdir/build/lua-master/source/lstate.c 19
/src/testdir/build/lua-master/source/lobject.c 21
/src/testdir/build/lua-master/source/ldo.c 28
/src/testdir/build/lua-master/source/lmem.c 5
/src/testdir/build/lua-master/source/lgc.c 74
/src/testdir/build/lua-master/source/ltable.c 59
/src/testdir/build/lua-master/source/lfunc.c 15
/src/testdir/build/lua-master/source/lstring.c 19
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 42
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 1
/src/testdir/build/lua-master/source/llex.c 1
/src/testdir/build/lua-master/source/lapi.c 40

Fuzzer: luaL_buffaddr_test

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 3737 74.1%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 11 0.21%
lawngreen 50+ 1289 25.5%
All colors 5037 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
737 3532 luaF_newtbcupval call site: 03532 luaG_traceexec
646 2870 luaH_new call site: 02870 luaH_resize
213 1927 luaS_new call site: 01927 luaG_runerror
183 2678 luaV_finishset call site: 02678 luaG_typeerror
153 1767 luaD_precall call site: 01767 luaD_growstack
123 1376 luaD_callnoyield call site: 01376 luaE_checkcstack
123 1510 luaS_newlstr call site: 01510 luaD_throw
110 4570 newbuffsize call site: 04570 luaL_error
94 2317 getgeneric call site: 02317 luaG_runerror
87 581 genlink call site: 00581 traverseephemeron
87 1207 checkmajorminor call site: 01207 atomic2gen
81 670 traversetable call site: 00670 traverseproto

Runtime coverage analysis

Covered functions
186
Functions that are reachable but not covered
248
Reachable functions
430
Percentage of reachable functions covered
42.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.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
/src/testdir/tests/capi/luaL_buffaddr_test.c 1
/src/testdir/build/lua-master/source/lauxlib.c 22
/src/testdir/build/lua-master/source/lstate.c 19
/src/testdir/build/lua-master/source/lobject.c 21
/src/testdir/build/lua-master/source/ldo.c 28
/src/testdir/build/lua-master/source/lmem.c 5
/src/testdir/build/lua-master/source/lgc.c 74
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 15
/src/testdir/build/lua-master/source/lstring.c 19
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 42
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 1
/src/testdir/build/lua-master/source/llex.c 1
/src/testdir/build/lua-master/source/lapi.c 34

Fuzzer: luaL_buffsub_test

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 3737 74.1%
gold [1:9] 4 0.07%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1298 25.7%
All colors 5039 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
737 3532 luaF_newtbcupval call site: 03532 luaG_traceexec
646 2870 luaH_new call site: 02870 luaH_resize
213 1927 luaS_new call site: 01927 luaG_runerror
183 2678 luaV_finishset call site: 02678 luaG_typeerror
153 1767 luaD_precall call site: 01767 luaD_growstack
123 1376 luaD_callnoyield call site: 01376 luaE_checkcstack
123 1510 luaS_newlstr call site: 01510 luaD_throw
110 4570 newbuffsize call site: 04570 luaL_error
94 2317 getgeneric call site: 02317 luaG_runerror
87 581 genlink call site: 00581 traverseephemeron
87 1207 checkmajorminor call site: 01207 atomic2gen
81 670 traversetable call site: 00670 traverseproto

Runtime coverage analysis

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

Files reached

filename functions hit
/src/testdir/tests/capi/luaL_buffsub_test.cc 1
/src/testdir/build/lua-master/source/lauxlib.c 21
/src/testdir/build/lua-master/source/lstate.c 19
/src/testdir/build/lua-master/source/lobject.c 21
/src/testdir/build/lua-master/source/ldo.c 28
/src/testdir/build/lua-master/source/lmem.c 5
/src/testdir/build/lua-master/source/lgc.c 74
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 15
/src/testdir/build/lua-master/source/lstring.c 19
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 42
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 1
/src/testdir/build/lua-master/source/llex.c 1
/src/testdir/build/lua-master/source/lapi.c 34

Fuzzer: luaL_gsub_test

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 3711 73.3%
gold [1:9] 2 0.03%
yellow [10:29] 5 0.09%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1338 26.4%
All colors 5056 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
737 3530 luaF_newtbcupval call site: 03530 luaG_traceexec
646 2868 luaH_new call site: 02868 luaH_resize
213 1925 luaS_new call site: 01925 luaG_runerror
183 2676 luaV_finishset call site: 02676 luaG_typeerror
153 1765 luaD_precall call site: 01765 luaD_growstack
123 1375 luaD_callnoyield call site: 01375 luaE_checkcstack
123 1509 luaS_newlstr call site: 01509 luaD_throw
110 4589 newbuffsize call site: 04589 luaL_error
94 2315 getgeneric call site: 02315 luaG_runerror
87 580 genlink call site: 00580 traverseephemeron
87 1206 checkmajorminor call site: 01206 atomic2gen
81 669 traversetable call site: 00669 traverseproto

Runtime coverage analysis

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

Files reached

filename functions hit
/src/testdir/tests/capi/luaL_gsub_test.cc 1
/src/testdir/build/lua-master/source/lauxlib.c 24
/src/testdir/build/lua-master/source/lstate.c 19
/src/testdir/build/lua-master/source/lobject.c 21
/src/testdir/build/lua-master/source/ldo.c 28
/src/testdir/build/lua-master/source/lmem.c 5
/src/testdir/build/lua-master/source/lgc.c 74
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 15
/src/testdir/build/lua-master/source/lstring.c 19
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 42
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 1
/src/testdir/build/lua-master/source/llex.c 1
/src/testdir/build/lua-master/source/lapi.c 35

Fuzzer: luaL_loadbufferx_test

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 3408 48.3%
gold [1:9] 24 0.34%
yellow [10:29] 20 0.28%
greenyellow [30:49] 21 0.29%
lawngreen 50+ 3579 50.7%
All colors 7052 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
470 3076 luaV_tointegerns call site: 03076 luaG_traceexec
387 3564 luaV_equalobj call site: 03564 luaT_callTMres
270 1648 luaD_reallocstack call site: 01648 luaD_reallocstack
172 4664 luaF_newproto call site: 04664 loadFunction
159 2868 luaH_new call site: 02868 luaH_resize
158 3981 luaO_str2num call site: 03981 luaG_forerror
137 2001 luaP_isIT call site: 02001 luaD_hook
118 4146 luaF_newLclosure call site: 04146 luaF_findupval
111 2748 luaH_pset call site: 02748 luaG_runerror
93 2316 luaH_get call site: 02316 luaG_runerror
87 579 genlink call site: 00579 traverseephemeron
87 1205 checkmajorminor call site: 01205 atomic2gen

Runtime coverage analysis

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

Files reached

filename functions hit
/src/testdir/tests/capi/luaL_loadbufferx_test.c 1
/src/testdir/build/lua-master/source/lauxlib.c 11
/src/testdir/build/lua-master/source/lstate.c 20
/src/testdir/build/lua-master/source/lobject.c 24
/src/testdir/build/lua-master/source/ldo.c 32
/src/testdir/build/lua-master/source/lmem.c 8
/src/testdir/build/lua-master/source/lgc.c 71
/src/testdir/build/lua-master/source/ltable.c 56
/src/testdir/build/lua-master/source/lfunc.c 16
/src/testdir/build/lua-master/source/lstring.c 18
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 35
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 2
/src/testdir/build/lua-master/source/llex.c 25
/src/testdir/build/lua-master/source/lapi.c 8
/src/testdir/build/lua-master/source/lzio.c 5
/src/testdir/build/lua-master/source/lundump.c 23
/src/testdir/build/lua-master/source/lparser.c 107
/src/testdir/build/lua-master/source/lcode.c 108

Fuzzer: lua_dump_test

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 3409 47.5%
gold [1:9] 29 0.40%
yellow [10:29] 33 0.45%
greenyellow [30:49] 7 0.09%
lawngreen 50+ 3696 51.5%
All colors 7174 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
470 3076 luaV_tointegerns call site: 03076 luaG_traceexec
387 3564 luaV_equalobj call site: 03564 luaT_callTMres
270 1648 luaD_reallocstack call site: 01648 luaD_reallocstack
172 4670 luaF_newproto call site: 04670 loadFunction
159 2868 luaH_new call site: 02868 luaH_resize
158 3981 luaO_str2num call site: 03981 luaG_forerror
137 2001 luaP_isIT call site: 02001 luaD_hook
118 4146 luaF_newLclosure call site: 04146 luaF_findupval
111 2748 luaH_pset call site: 02748 luaG_runerror
93 2316 luaH_get call site: 02316 luaG_runerror
87 579 genlink call site: 00579 traverseephemeron
87 1205 checkmajorminor call site: 01205 atomic2gen

Runtime coverage analysis

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

Files reached

filename functions hit
/src/testdir/tests/capi/lua_dump_test.c 2
/src/testdir/build/lua-master/source/lauxlib.c 12
/src/testdir/build/lua-master/source/lstate.c 20
/src/testdir/build/lua-master/source/lobject.c 24
/src/testdir/build/lua-master/source/ldo.c 32
/src/testdir/build/lua-master/source/lmem.c 8
/src/testdir/build/lua-master/source/lgc.c 71
/src/testdir/build/lua-master/source/ltable.c 56
/src/testdir/build/lua-master/source/lfunc.c 16
/src/testdir/build/lua-master/source/lstring.c 18
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 35
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 2
/src/testdir/build/lua-master/source/llex.c 25
/src/testdir/build/lua-master/source/lapi.c 9
/src/testdir/build/lua-master/source/lzio.c 5
/src/testdir/build/lua-master/source/lundump.c 23
/src/testdir/build/lua-master/source/lparser.c 107
/src/testdir/build/lua-master/source/lcode.c 108
/src/testdir/build/lua-master/source/ldump.c 17

Fuzzer: fuzz_lua

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 2514 32.6%
gold [1:9] 437 5.67%
yellow [10:29] 169 2.19%
greenyellow [30:49] 88 1.14%
lawngreen 50+ 4489 58.3%
All colors 7697 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
87 579 genlink call site: 00579 traverseephemeron
87 1205 checkmajorminor call site: 01205 atomic2gen
80 4664 luaF_newproto call site: 04664 loadFunction
79 4757 luaS_newextlstr call site: 04757 loadProtos
76 2951 luaV_execute call site: 02951 luaV_finishget
69 2878 luaV_execute call site: 02878 youngcollection
64 3076 luaV_tointegerns call site: 03076 luaG_traceexec
63 4031 luaV_execute call site: 04031 luaF_newtbcupval
62 7504 findfield call site: 07504 findfield
61 4572 checkmode call site: 04572 luaU_undump
51 3564 luaV_equalobj call site: 03564 luaT_callTMres
42 7256 lua_getinfo call site: 07256 collectvalidlines

Runtime coverage analysis

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

Files reached

filename functions hit
/src/fuzz_lua.c 8
/src/testdir/build/lua-master/source/lauxlib.c 33
/src/testdir/build/lua-master/source/lstate.c 20
/src/testdir/build/lua-master/source/lobject.c 24
/src/testdir/build/lua-master/source/ldo.c 32
/src/testdir/build/lua-master/source/lmem.c 8
/src/testdir/build/lua-master/source/lgc.c 74
/src/testdir/build/lua-master/source/ltable.c 59
/src/testdir/build/lua-master/source/lfunc.c 17
/src/testdir/build/lua-master/source/lstring.c 19
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 44
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 2
/src/testdir/build/lua-master/source/llex.c 25
/src/testdir/build/lua-master/source/lapi.c 50
/src/testdir/build/lua-master/source/lzio.c 5
/src/testdir/build/lua-master/source/lundump.c 23
/src/testdir/build/lua-master/source/lparser.c 107
/src/testdir/build/lua-master/source/lcode.c 108

Fuzzer: luaL_dostring_test

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 585 8.06%
gold [1:9] 69 0.95%
yellow [10:29] 49 0.67%
greenyellow [30:49] 43 0.59%
lawngreen 50+ 6504 89.7%
All colors 7250 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
43 3564 luaV_equalobj call site: 03564 luaT_callTMres
20 668 traversetable call site: 00668 traverseudata
19 2295 equalkey call site: 02295 luaS_eqstr
18 581 genlink call site: 00581 traverseweakvalue
18 2527 luaH_finishset call site: 02527 luaS_normstr
16 4248 luaV_execute call site: 04248 createvarargtab
13 605 iscleared call site: 00605 genlink
13 966 luaC_fullgc call site: 00966 luaD_throw
13 2060 luaV_execute call site: 02060 luaG_traceexec
12 1452 addnum2buff call site: 01452 addnum2buff
10 4887 loadAlign call site: 04887 getaddr_
10 5658 numarith call site: 05658 intarith

Runtime coverage analysis

Covered functions
1035
Functions that are reachable but not covered
55
Reachable functions
682
Percentage of reachable functions covered
91.94%
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
/src/testdir/tests/capi/luaL_dostring_test.c 1
/src/testdir/build/lua-master/source/lauxlib.c 14
/src/testdir/build/lua-master/source/lstate.c 20
/src/testdir/build/lua-master/source/lobject.c 24
/src/testdir/build/lua-master/source/ldo.c 32
/src/testdir/build/lua-master/source/lmem.c 8
/src/testdir/build/lua-master/source/lgc.c 71
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 17
/src/testdir/build/lua-master/source/lstring.c 18
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 35
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 2
/src/testdir/build/lua-master/source/llex.c 25
/src/testdir/build/lua-master/source/lapi.c 25
/src/testdir/build/lua-master/source/linit.c 1
/src/testdir/build/lua-master/source/lzio.c 5
/src/testdir/build/lua-master/source/lundump.c 23
/src/testdir/build/lua-master/source/lparser.c 107
/src/testdir/build/lua-master/source/lcode.c 108

Fuzzer: luaL_loadbuffer_test

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 528 7.28%
gold [1:9] 52 0.71%
yellow [10:29] 10 0.13%
greenyellow [30:49] 15 0.20%
lawngreen 50+ 6641 91.6%
All colors 7246 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
43 3564 luaV_equalobj call site: 03564 luaT_callTMres
20 668 traversetable call site: 00668 traverseudata
19 2295 equalkey call site: 02295 luaS_eqstr
18 581 genlink call site: 00581 traverseweakvalue
18 2527 luaH_finishset call site: 02527 luaS_normstr
16 4248 luaV_execute call site: 04248 createvarargtab
14 1935 typeerror call site: 01935 luaG_runerror
13 605 iscleared call site: 00605 genlink
13 966 luaC_fullgc call site: 00966 luaD_throw
13 2060 luaV_execute call site: 02060 luaG_traceexec
12 1452 addnum2buff call site: 01452 addnum2buff
10 4883 loadAlign call site: 04883 getaddr_

Runtime coverage analysis

Covered functions
972
Functions that are reachable but not covered
54
Reachable functions
681
Percentage of reachable functions covered
92.07%
NB: The sum of covered functions and functions that are reachable but not covered need not be equal to Reachable functions . This is because the reachability analysis is an approximation and thus at runtime some functions may be covered that are not included in the reachability analysis. This is a limitation of our static analysis capabilities.
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
/src/testdir/tests/capi/luaL_loadbuffer_test.c 1
/src/testdir/build/lua-master/source/lauxlib.c 13
/src/testdir/build/lua-master/source/lstate.c 20
/src/testdir/build/lua-master/source/lobject.c 24
/src/testdir/build/lua-master/source/ldo.c 32
/src/testdir/build/lua-master/source/lmem.c 8
/src/testdir/build/lua-master/source/lgc.c 71
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 17
/src/testdir/build/lua-master/source/lstring.c 18
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 35
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 2
/src/testdir/build/lua-master/source/llex.c 25
/src/testdir/build/lua-master/source/lapi.c 25
/src/testdir/build/lua-master/source/linit.c 1
/src/testdir/build/lua-master/source/lzio.c 5
/src/testdir/build/lua-master/source/lundump.c 23
/src/testdir/build/lua-master/source/lparser.c 107
/src/testdir/build/lua-master/source/lcode.c 108

Fuzzer: torture_test

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 3030 61.6%
gold [1:9] 184 3.74%
yellow [10:29] 274 5.57%
greenyellow [30:49] 145 2.95%
lawngreen 50+ 1281 26.0%
All colors 4914 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
285 3076 luaV_tointegerns call site: 03076 luaG_traceexec
263 3682 LEnum call site: 03682 lessequalothers
200 2868 luaH_new call site: 02868 luaH_resize
153 1765 luaD_precall call site: 01765 luaD_growstack
150 3989 luaV_tonumber_ call site: 03989 luaG_forerror
137 2001 luaP_isIT call site: 02001 luaD_hook
118 4146 luaF_newLclosure call site: 04146 luaF_findupval
113 2746 luaH_pset call site: 02746 luaG_runerror
93 2316 luaH_get call site: 02316 luaG_runerror
87 579 genlink call site: 00579 traverseephemeron
87 1205 checkmajorminor call site: 01205 atomic2gen
74 1925 luaS_new call site: 01925 luaG_runerror

Runtime coverage analysis

Covered functions
552
Functions that are reachable but not covered
170
Reachable functions
415
Percentage of reachable functions covered
59.04%
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
/src/testdir/tests/capi/torture_test.cc 5
/src/testdir/build/lua-master/source/lauxlib.c 14
/src/testdir/build/lua-master/source/lstate.c 19
/src/testdir/build/lua-master/source/lobject.c 21
/src/testdir/build/lua-master/source/ldo.c 28
/src/testdir/build/lua-master/source/lmem.c 5
/src/testdir/build/lua-master/source/lgc.c 74
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 15
/src/testdir/build/lua-master/source/lstring.c 16
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 44
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 1
/src/testdir/build/lua-master/source/llex.c 1
/src/testdir/build/lua-master/source/lapi.c 23

Fuzzer: luaL_loadstring_test

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 807 11.1%
gold [1:9] 87 1.2%
yellow [10:29] 83 1.14%
greenyellow [30:49] 63 0.86%
lawngreen 50+ 6210 85.6%
All colors 7250 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
43 3564 luaV_equalobj call site: 03564 luaT_callTMres
35 4210 luaV_execute call site: 04210 luaG_traceexec
20 668 traversetable call site: 00668 traverseudata
19 2295 equalkey call site: 02295 luaS_eqstr
18 581 genlink call site: 00581 traverseweakvalue
18 2527 luaH_finishset call site: 02527 luaS_normstr
17 6483 forstat call site: 06483 repeatstat
16 2060 luaV_execute call site: 02060 luaG_traceexec
16 4248 luaV_execute call site: 04248 createvarargtab
14 7230 f_call call site: 07230 luaD_call
13 605 iscleared call site: 00605 genlink
13 966 luaC_fullgc call site: 00966 luaD_throw

Runtime coverage analysis

Covered functions
967
Functions that are reachable but not covered
63
Reachable functions
682
Percentage of reachable functions covered
90.76%
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
/src/testdir/tests/capi/luaL_loadstring_test.c 1
/src/testdir/build/lua-master/source/lauxlib.c 14
/src/testdir/build/lua-master/source/lstate.c 20
/src/testdir/build/lua-master/source/lobject.c 24
/src/testdir/build/lua-master/source/ldo.c 32
/src/testdir/build/lua-master/source/lmem.c 8
/src/testdir/build/lua-master/source/lgc.c 71
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 17
/src/testdir/build/lua-master/source/lstring.c 18
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 35
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 2
/src/testdir/build/lua-master/source/llex.c 25
/src/testdir/build/lua-master/source/lapi.c 25
/src/testdir/build/lua-master/source/linit.c 1
/src/testdir/build/lua-master/source/lzio.c 5
/src/testdir/build/lua-master/source/lundump.c 23
/src/testdir/build/lua-master/source/lparser.c 107
/src/testdir/build/lua-master/source/lcode.c 108

Fuzzer: luaL_addgsub_test

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 3720 73.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1331 26.3%
All colors 5051 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
737 3532 luaF_newtbcupval call site: 03532 luaG_traceexec
646 2870 luaH_new call site: 02870 luaH_resize
213 1927 luaS_new call site: 01927 luaG_runerror
183 2678 luaV_finishset call site: 02678 luaG_typeerror
153 1767 luaD_precall call site: 01767 luaD_growstack
123 1376 luaD_callnoyield call site: 01376 luaE_checkcstack
123 1510 luaS_newlstr call site: 01510 luaD_throw
110 4572 newbuffsize call site: 04572 luaL_error
94 2317 getgeneric call site: 02317 luaG_runerror
87 581 genlink call site: 00581 traverseephemeron
87 1207 checkmajorminor call site: 01207 atomic2gen
81 670 traversetable call site: 00670 traverseproto

Runtime coverage analysis

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

Files reached

filename functions hit
/src/testdir/tests/capi/luaL_addgsub_test.cc 1
/src/testdir/build/lua-master/source/lauxlib.c 23
/src/testdir/build/lua-master/source/lstate.c 19
/src/testdir/build/lua-master/source/lobject.c 21
/src/testdir/build/lua-master/source/ldo.c 28
/src/testdir/build/lua-master/source/lmem.c 5
/src/testdir/build/lua-master/source/lgc.c 74
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 15
/src/testdir/build/lua-master/source/lstring.c 19
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 42
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 1
/src/testdir/build/lua-master/source/llex.c 1
/src/testdir/build/lua-master/source/lapi.c 34

Fuzzer: lua_load_test

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 695 9.58%
gold [1:9] 31 0.42%
yellow [10:29] 55 0.75%
greenyellow [30:49] 30 0.41%
lawngreen 50+ 6439 88.8%
All colors 7250 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
78 4948 luaS_newextlstr call site: 04948 loadProtos
77 4857 luaF_newproto call site: 04857 loadFunction
43 3564 luaV_equalobj call site: 03564 luaT_callTMres
31 2680 luaV_finishset call site: 02680 luaT_callTM
22 4210 luaV_execute call site: 04210 luaG_traceexec
20 669 traversetable call site: 00669 traverseudata
19 2295 equalkey call site: 02295 luaS_eqstr
18 582 genlink call site: 00582 traverseweakvalue
18 2527 luaH_finishset call site: 02527 luaS_normstr
16 1597 luaG_errormsg call site: 01597 luaD_callnoyield
14 1935 typeerror call site: 01935 luaG_runerror
13 606 iscleared call site: 00606 genlink

Runtime coverage analysis

Covered functions
961
Functions that are reachable but not covered
72
Reachable functions
681
Percentage of reachable functions covered
89.43%
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
/src/testdir/tests/capi/lua_load_test.cc 2
/src/testdir/build/lua-master/source/lauxlib.c 11
/src/testdir/build/lua-master/source/lstate.c 20
/src/testdir/build/lua-master/source/lobject.c 24
/src/testdir/build/lua-master/source/ldo.c 32
/src/testdir/build/lua-master/source/lmem.c 8
/src/testdir/build/lua-master/source/lgc.c 71
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 17
/src/testdir/build/lua-master/source/lstring.c 18
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 35
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 2
/src/testdir/build/lua-master/source/llex.c 25
/src/testdir/build/lua-master/source/lapi.c 25
/src/testdir/build/lua-master/source/linit.c 1
/src/testdir/build/lua-master/source/lzio.c 5
/src/testdir/build/lua-master/source/lundump.c 23
/src/testdir/build/lua-master/source/lparser.c 107
/src/testdir/build/lua-master/source/lcode.c 108

Fuzzer: luaL_loadbuffer_proto_test

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 1254 16.7%
gold [1:9] 25 0.33%
yellow [10:29] 57 0.76%
greenyellow [30:49] 41 0.54%
lawngreen 50+ 6091 81.5%
All colors 7468 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
85 584 genlink call site: 00584 traverseephemeron
78 5165 luaS_newextlstr call site: 05165 loadProtos
77 5074 luaF_newproto call site: 05074 loadFunction
43 3565 luaV_equalobj call site: 03565 luaT_callTMres
28 2791 luaV_execute call site: 02791 luaV_finishset
26 1676 precallC call site: 01676 luaD_hook
24 3077 luaV_tointegerns call site: 03077 luaG_traceexec
23 2349 luaV_execute call site: 02349 luaV_finishget
22 4211 luaV_execute call site: 04211 luaG_traceexec
21 1086 remarkupvals call site: 01086 reallymarkobject
21 1708 luaD_poscall call site: 01708 rethook
20 671 traversetable call site: 00671 traverseudata

Runtime coverage analysis

Covered functions
3291
Functions that are reachable but not covered
99
Reachable functions
848
Percentage of reachable functions covered
88.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
/src/testdir/tests/capi/luaL_loadbuffer_proto/luaL_loadbuffer_proto_test.cc 5
/src/testdir/build/lua-master/source/lauxlib.c 13
/src/testdir/build/lua-master/source/lstate.c 20
/src/testdir/build/lua-master/source/lobject.c 24
/src/testdir/build/lua-master/source/ldo.c 32
/src/testdir/build/lua-master/source/lmem.c 8
/src/testdir/build/lua-master/source/lgc.c 71
/src/testdir/build/lua-master/source/ltable.c 57
/src/testdir/build/lua-master/source/lfunc.c 17
/src/testdir/build/lua-master/source/lstring.c 18
/src/testdir/build/lua-master/source/ltm.c 19
/src/testdir/build/lua-master/source/ldebug.c 35
/src/testdir/build/lua-master/source/lvm.c 29
/src/testdir/build/lua-master/source/lopcodes.c 2
/src/testdir/build/lua-master/source/llex.c 25
/src/testdir/build/lua-master/source/lapi.c 25
/src/testdir/tests/capi/luaL_loadbuffer_proto/serializer.cc 76
/src/testdir/build/lua-master/source/linit.c 1
/src/testdir/build/lua-master/source/lzio.c 5
/src/testdir/build/lua-master/source/lundump.c 23
/src/testdir/build/lua-master/source/lparser.c 107
/src/testdir/build/lua-master/source/lcode.c 108

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
luaB_cowrap /src/testdir/build/lua-master/source/lcorolib.c 1 ['N/A'] 208 0 17 3 2 403 0 5777 249
str_gsub /src/testdir/build/lua-master/source/lstrlib.c 1 ['N/A'] 173 0 418 57 18 454 0 6102 227
io_lines /src/testdir/build/lua-master/source/liolib.c 1 ['N/A'] 175 0 95 12 5 456 0 6037 153
str_format /src/testdir/build/lua-master/source/lstrlib.c 1 ['N/A'] 173 0 686 99 23 446 0 6049 135
luaB_loadfile /src/testdir/build/lua-master/source/lbaselib.c 1 ['N/A'] 172 0 48 3 2 689 0 8282 116
sort /src/testdir/build/lua-master/source/ltablib.c 1 ['N/A'] 171 0 76 12 5 402 0 5646 110
searcher_Croot /src/testdir/build/lua-master/source/loadlib.c 1 ['N/A'] 174 0 105 12 6 449 0 5985 90
str_pack /src/testdir/build/lua-master/source/lstrlib.c 1 ['N/A'] 172 0 770 84 24 435 0 5975 83
__lua_getiuservalue(lua_State*,FuzzedDataProvider*) /src/testdir/tests/capi/torture_test.cc 2 ['N/A', 'N/A'] 42 0 54 7 2 341 0 5064 68
db_sethook /src/testdir/build/lua-master/source/ldblib.c 1 ['N/A'] 173 0 164 16 7 407 0 5736 51

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

Functions statically reachable by fuzzers
73.0%
975 / 1336
Cyclomatic complexity statically reachable by fuzzers
87.0%
11546 / 13296

All functions overview

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

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

Fuzz engine guidance

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

/src/testdir/tests/capi/lua_stringtonumber_test.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaH_new', 'luaS_new', 'callallpendingfinalizers', 'freeobj', 'luaV_tonumber_', 'luaH_resize', 'separatetobefnz', 'internshrstr', 'luaH_setint', 'luaF_closeupval']

/src/testdir/tests/capi/luaL_bufflen_test.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaF_newtbcupval', 'luaH_new', 'luaS_new', 'luaV_finishset', 'luaD_precall', 'luaD_callnoyield', 'luaS_newlstr', 'newbuffsize', 'getgeneric', 'genlink']

/src/testdir/tests/capi/luaL_traceback_test.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaF_newtbcupval', 'luaH_new', 'luaS_new', 'luaV_finishset', 'luaD_precall', 'luaD_callnoyield', 'luaS_newlstr', 'newbuffsize', 'luaL_traceback', 'getgeneric']

/src/testdir/tests/capi/luaL_buffaddr_test.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaF_newtbcupval', 'luaH_new', 'luaS_new', 'luaV_finishset', 'luaD_precall', 'luaD_callnoyield', 'luaS_newlstr', 'newbuffsize', 'getgeneric', 'genlink']

/src/testdir/tests/capi/luaL_buffsub_test.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaF_newtbcupval', 'luaH_new', 'luaS_new', 'luaV_finishset', 'luaD_precall', 'luaD_callnoyield', 'luaS_newlstr', 'newbuffsize', 'getgeneric', 'genlink']

/src/testdir/tests/capi/luaL_gsub_test.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaF_newtbcupval', 'luaH_new', 'luaS_new', 'luaV_finishset', 'luaD_precall', 'luaD_callnoyield', 'luaS_newlstr', 'newbuffsize', 'getgeneric', 'genlink']

/src/testdir/tests/capi/luaL_loadbufferx_test.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaV_tointegerns', 'luaV_equalobj', 'luaD_reallocstack', 'luaF_newproto', 'luaH_new', 'luaO_str2num', 'luaP_isIT', 'luaF_newLclosure', 'luaH_pset', 'luaH_get']

/src/testdir/tests/capi/lua_dump_test.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaV_tointegerns', 'luaV_equalobj', 'luaD_reallocstack', 'luaF_newproto', 'luaH_new', 'luaO_str2num', 'luaP_isIT', 'luaF_newLclosure', 'luaH_pset', 'luaH_get']

/src/fuzz_lua.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['genlink', 'checkmajorminor', 'luaF_newproto', 'luaS_newextlstr', 'luaV_execute', 'luaV_tointegerns', 'findfield', 'checkmode']

/src/testdir/tests/capi/luaL_dostring_test.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaV_equalobj', 'traversetable', 'equalkey', 'genlink', 'luaH_finishset', 'luaV_execute', 'iscleared', 'luaC_fullgc', 'addnum2buff']

/src/testdir/tests/capi/luaL_loadbuffer_test.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaV_equalobj', 'traversetable', 'equalkey', 'genlink', 'luaH_finishset', 'luaV_execute', 'typeerror', 'iscleared', 'luaC_fullgc']

/src/testdir/tests/capi/torture_test.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaV_tointegerns', 'LEnum', 'luaH_new', 'luaD_precall', 'luaV_tonumber_', 'luaP_isIT', 'luaF_newLclosure', 'luaH_pset', 'luaH_get', 'genlink']

/src/testdir/tests/capi/luaL_loadstring_test.c

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaV_equalobj', 'luaV_execute', 'traversetable', 'equalkey', 'genlink', 'luaH_finishset', 'forstat', 'f_call']

/src/testdir/tests/capi/luaL_addgsub_test.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaF_newtbcupval', 'luaH_new', 'luaS_new', 'luaV_finishset', 'luaD_precall', 'luaD_callnoyield', 'luaS_newlstr', 'newbuffsize', 'getgeneric', 'genlink']

/src/testdir/tests/capi/lua_load_test.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['luaS_newextlstr', 'luaF_newproto', 'luaV_equalobj', 'luaV_finishset', 'luaV_execute', 'traversetable', 'equalkey', 'genlink', 'luaH_finishset', 'luaG_errormsg']

/src/testdir/tests/capi/luaL_loadbuffer_proto/luaL_loadbuffer_proto_test.cc

Dictionary

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


Fuzzer function priority

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

-focus_function=['genlink', 'luaS_newextlstr', 'luaF_newproto', 'luaV_equalobj', 'luaV_execute', 'precallC', 'luaV_tointegerns', 'remarkupvals']

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
luaV_finishOp 54 18 33.33% ['lua_load_test', 'luaL_loadbuffer_test', 'luaL_dostring_test']
google::protobuf::DescriptorBuilder::AddSymbol(std::__1::basic_string ,std::__1::allocator >const&,voidconst*,std::__1::basic_string ,std::__1::allocator >const&,google::protobuf::Messageconst&,google::protobuf::Symbol) 40 8 20.0%
google::protobuf::DescriptorBuilder::BuildFile(google::protobuf::FileDescriptorProtoconst&) 49 21 42.85%
google::protobuf::DescriptorBuilder::BuildFileImpl(google::protobuf::FileDescriptorProtoconst&,google::protobuf::internal::FlatAllocator&) 201 79 39.30%
google::protobuf::DescriptorBuilder::BuildMessage(google::protobuf::DescriptorProtoconst&,google::protobuf::Descriptorconst*,google::protobuf::Descriptor*,google::protobuf::internal::FlatAllocator&) 135 68 50.37%
google::protobuf::DescriptorBuilder::BuildFieldOrExtension(google::protobuf::FieldDescriptorProtoconst&,google::protobuf::Descriptor*,google::protobuf::FieldDescriptor*,bool,google::protobuf::internal::FlatAllocator&) 232 103 44.39%
google::protobuf::DescriptorBuilder::BuildEnum(google::protobuf::EnumDescriptorProtoconst&,google::protobuf::Descriptorconst*,google::protobuf::EnumDescriptor*,google::protobuf::internal::FlatAllocator&) 84 37 44.04%
google::protobuf::DescriptorBuilder::BuildEnumValue(google::protobuf::EnumValueDescriptorProtoconst&,google::protobuf::EnumDescriptorconst*,google::protobuf::EnumValueDescriptor*,google::protobuf::internal::FlatAllocator&) 43 21 48.83%
google::protobuf::DescriptorBuilder::CrossLinkField(google::protobuf::FieldDescriptor*,google::protobuf::FieldDescriptorProtoconst&) 193 53 27.46%
google::protobuf::FileDescriptorProto::Clear() 33 15 45.45%
google::protobuf::FileDescriptorProto::_InternalParse(charconst*,google::protobuf::internal::ParseContext*) 171 64 37.42%
google::protobuf::DescriptorProto_ExtensionRange::_InternalParse(charconst*,google::protobuf::internal::ParseContext*) 53 28 52.83%
google::protobuf::OneofDescriptorProto::_InternalParse(charconst*,google::protobuf::internal::ParseContext*) 48 24 50.0%
google::protobuf::EnumDescriptorProto::_InternalParse(charconst*,google::protobuf::internal::ParseContext*) 88 35 39.77%
google::protobuf::FileOptions::Clear() 55 13 23.63%
google::protobuf::FileOptions::_InternalParse(charconst*,google::protobuf::internal::ParseContext*) 241 88 36.51%
google::protobuf::FileOptions::_InternalSerialize(unsignedchar*,google::protobuf::io::EpsCopyOutputStream*)const 139 76 54.67%
google::protobuf::FieldOptions::_InternalParse(charconst*,google::protobuf::internal::ParseContext*) 111 28 25.22%
google::protobuf::FieldOptions::_InternalSerialize(unsignedchar*,google::protobuf::io::EpsCopyOutputStream*)const 48 24 50.0%
google::protobuf::Reflection::FieldSize(google::protobuf::Messageconst&,google::protobuf::FieldDescriptorconst*)const 38 15 39.47%
google::protobuf::Reflection::ClearOneof(google::protobuf::Message*,google::protobuf::OneofDescriptorconst*)const 31 5 16.12%
google::protobuf::internal::IsDescendant(google::protobuf::Message&,google::protobuf::Messageconst&) 37 7 18.91%
google::protobuf::Reflection::HasBit(google::protobuf::Messageconst&,google::protobuf::FieldDescriptorconst*)const 50 5 10.0%
google::protobuf::internal::EpsCopyInputStream::NextBuffer(int,int) 41 11 26.82%
google::protobuf::internal::(anonymousnamespace)::UTF8GenericScan(google::protobuf::internal::UTF8StateMachineObjconst*,charconst*,int,int*) 72 3 4.166%
google::protobuf::TextFormat::Parser::ParserImpl::ConsumeField(google::protobuf::Message*) 199 82 41.20%
google::protobuf::TextFormat::Parser::ParserImpl::SkipFieldValue() 53 24 45.28%
google::protobuf::TextFormat::Parser::ParserImpl::ConsumeFieldValue(google::protobuf::Message*,google::protobuf::Reflectionconst*,google::protobuf::FieldDescriptorconst*) 118 44 37.28%
voidprotobuf_mutator::FieldFunction ::operator() (protobuf_mutator::FieldInstanceconst&)const 39 16 41.02%
lua_grammar::Expression::MergeImpl(google::protobuf::Message&,google::protobuf::Messageconst&) 62 12 19.35%
lua_grammar::BinaryOperator::MergeImpl(google::protobuf::Message&,google::protobuf::Messageconst&) 97 12 12.37%

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/testdir/build/lua-master/source/lobject.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/usr/local/bin/../include/c++/v1/stdexcept [] []
/src/testdir/build/lua-master/source/lapi.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/lundump.c ['luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['luaL_loadbufferx_test', 'lua_dump_test', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/tests/capi/luaL_dostring_test.c ['luaL_dostring_test'] ['luaL_dostring_test']
/src/testdir/build/lua-master/source/lmathlib.c [] []
/src/testdir/build/lua-master/source/lgc.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/lstrlib.c [] []
/src/testdir/tests/capi/lua_load_test.cc ['lua_load_test'] ['lua_load_test']
/src/fuzz_lua.c ['fuzz_lua'] ['fuzz_lua']
/src/testdir/build/lua-master/source/lfunc.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/loadlib.c [] []
/src/testdir/tests/capi/luaL_traceback_test.c ['luaL_traceback_test'] ['luaL_traceback_test']
/src/testdir/build/lua-master/source/llex.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/ldo.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/ltable.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/tests/capi/luaL_loadstring_test.c ['luaL_loadstring_test'] ['luaL_loadstring_test']
/src/testdir/build/lua-master/source/ldump.c ['lua_dump_test'] ['lua_dump_test']
/src/testdir/tests/capi/luaL_loadbufferx_test.c ['luaL_loadbufferx_test'] ['luaL_loadbufferx_test']
/src/testdir/tests/capi/luaL_gsub_test.cc ['luaL_gsub_test'] ['luaL_gsub_test']
/src/testdir/build/lua-master/source/lbaselib.c [] []
/src/testdir/tests/capi/luaL_loadbuffer_proto/serializer.cc ['luaL_loadbuffer_proto_test'] ['luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/lmem.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/tests/capi/luaL_bufflen_test.c ['luaL_bufflen_test'] ['luaL_bufflen_test']
/src/testdir/build/lua-master/source/liolib.c [] []
/src/testdir/tests/capi/luaL_loadbuffer_proto/luaL_loadbuffer_proto_test.cc ['luaL_loadbuffer_proto_test'] ['luaL_loadbuffer_proto_test']
/src/testdir/tests/capi/luaL_loadbuffer_test.c ['luaL_loadbuffer_test'] ['luaL_loadbuffer_test']
/src/testdir/tests/capi/lua_stringtonumber_test.c ['lua_stringtonumber_test'] ['lua_stringtonumber_test']
/src/testdir/build/lua-master/source/lzio.c ['luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/lcode.c ['luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/lstate.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/lstring.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/lutf8lib.c [] []
/src/testdir/build/lua-master/source/ltm.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/ltablib.c [] []
/src/testdir/tests/capi/lua_dump_test.c ['lua_dump_test'] ['lua_dump_test']
/src/testdir/tests/capi/luaL_buffsub_test.cc ['luaL_buffsub_test'] ['luaL_buffsub_test']
/src/testdir/build/lua-master/source/lparser.c ['luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/lopcodes.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/ldebug.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['luaL_traceback_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/ldblib.c [] []
/src/testdir/tests/capi/luaL_addgsub_test.cc ['luaL_addgsub_test'] ['luaL_addgsub_test']
/src/testdir/build/lua-master/source/loslib.c [] []
/src/testdir/build/lua-master/source/lvm.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/build/lua-master/source/lauxlib.c ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['lua_stringtonumber_test', 'luaL_bufflen_test', 'luaL_traceback_test', 'luaL_buffaddr_test', 'luaL_buffsub_test', 'luaL_gsub_test', 'luaL_loadbufferx_test', 'lua_dump_test', 'fuzz_lua', 'luaL_dostring_test', 'luaL_loadbuffer_test', 'torture_test', 'luaL_loadstring_test', 'luaL_addgsub_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/tests/capi/torture_test.cc ['torture_test'] ['torture_test']
/usr/local/bin/../include/c++/v1/string [] []
/src/testdir/build/lua-master/source/lcorolib.c [] []
/src/testdir/build/lua-master/source/linit.c ['luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test'] ['luaL_dostring_test', 'luaL_loadbuffer_test', 'luaL_loadstring_test', 'lua_load_test', 'luaL_loadbuffer_proto_test']
/src/testdir/tests/capi/luaL_buffaddr_test.c ['luaL_buffaddr_test'] ['luaL_buffaddr_test']

Directories in report

Directory
/src/
/src/testdir/build/lua-master/source/
/src/testdir/tests/capi/
/src/testdir/tests/capi/luaL_loadbuffer_proto/
/usr/local/bin/../include/c++/v1/

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
lua_stringtonumber_test fuzzerLogFile-0-JjkLLy6sBY.data fuzzerLogFile-0-JjkLLy6sBY.data.yaml lua_stringtonumber_test.covreport
luaL_bufflen_test fuzzerLogFile-0-AlxkWHedPk.data fuzzerLogFile-0-AlxkWHedPk.data.yaml luaL_bufflen_test.covreport
luaL_traceback_test fuzzerLogFile-0-LRHvkm9AUJ.data fuzzerLogFile-0-LRHvkm9AUJ.data.yaml luaL_traceback_test.covreport
luaL_buffaddr_test fuzzerLogFile-0-H7AGrgugie.data fuzzerLogFile-0-H7AGrgugie.data.yaml luaL_buffaddr_test.covreport
luaL_buffsub_test fuzzerLogFile-0-8J94QvDNo3.data fuzzerLogFile-0-8J94QvDNo3.data.yaml luaL_buffsub_test.covreport
luaL_gsub_test fuzzerLogFile-0-GCTMrV0kye.data fuzzerLogFile-0-GCTMrV0kye.data.yaml luaL_gsub_test.covreport
luaL_loadbufferx_test fuzzerLogFile-0-PwpcpbcnoE.data fuzzerLogFile-0-PwpcpbcnoE.data.yaml luaL_loadbufferx_test.covreport
lua_dump_test fuzzerLogFile-0-kbDsumoh55.data fuzzerLogFile-0-kbDsumoh55.data.yaml lua_dump_test.covreport
fuzz_lua fuzzerLogFile-0-zRWmAQeYbr.data fuzzerLogFile-0-zRWmAQeYbr.data.yaml fuzz_lua.covreport
luaL_dostring_test fuzzerLogFile-0-TEKU4Bsnzo.data fuzzerLogFile-0-TEKU4Bsnzo.data.yaml luaL_dostring_test.covreport
luaL_loadbuffer_test fuzzerLogFile-0-LUdxHeykoH.data fuzzerLogFile-0-LUdxHeykoH.data.yaml luaL_loadbuffer_test.covreport
torture_test fuzzerLogFile-0-KdAZcURG38.data fuzzerLogFile-0-KdAZcURG38.data.yaml torture_test.covreport
luaL_loadstring_test fuzzerLogFile-0-lOnEu09Xtb.data fuzzerLogFile-0-lOnEu09Xtb.data.yaml luaL_loadstring_test.covreport
luaL_addgsub_test fuzzerLogFile-0-riX3unZcAN.data fuzzerLogFile-0-riX3unZcAN.data.yaml luaL_addgsub_test.covreport
lua_load_test fuzzerLogFile-0-929Iga6tgT.data fuzzerLogFile-0-929Iga6tgT.data.yaml lua_load_test.covreport
luaL_loadbuffer_proto_test fuzzerLogFile-0-lXTRBfkDwY.data fuzzerLogFile-0-lXTRBfkDwY.data.yaml luaL_loadbuffer_proto_test.covreport