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
luaL_gsub_test /src/testdir/tests/capi/luaL_gsub_test.cc 433 460 50 16 26471 5919 luaL_gsub_test.cc
luaL_bufflen_test /src/testdir/tests/capi/luaL_bufflen_test.c 429 455 50 16 26416 5861 luaL_bufflen_test.c
luaL_buffsub_test /src/testdir/tests/capi/luaL_buffsub_test.cc 428 465 50 16 26430 5884 luaL_buffsub_test.cc
luaL_buffaddr_test /src/testdir/tests/capi/luaL_buffaddr_test.c 429 455 50 16 26416 5862 luaL_buffaddr_test.c
luaL_traceback_test /src/testdir/tests/capi/luaL_traceback_test.c 445 439 50 16 27040 6015 luaL_traceback_test.c
luaL_addgsub_test /src/testdir/tests/capi/luaL_addgsub_test.cc 431 462 50 16 26455 5904 luaL_addgsub_test.cc
luaL_loadbuffer_test /src/testdir/tests/capi/luaL_loadbuffer_test.c 680 544 50 21 34773 8160 luaL_loadbuffer_test.c
lua_dump_test /src/testdir/tests/capi/lua_dump_test.c 678 207 50 21 33990 8027 lua_dump_test.c
luaL_loadbufferx_test /src/testdir/tests/capi/luaL_loadbufferx_test.c 658 226 50 20 33422 7882 luaL_loadbufferx_test.c
lua_load_test /src/testdir/tests/capi/lua_load_test.cc 680 555 50 21 34783 8162 lua_load_test.cc
luaL_dostring_test /src/testdir/tests/capi/luaL_dostring_test.c 681 543 50 21 34782 8164 luaL_dostring_test.c
lua_stringtonumber_test /src/testdir/tests/capi/lua_stringtonumber_test.c 370 514 50 16 23367 5220 lua_stringtonumber_test.c
luaL_loadbuffer_proto_test /src/testdir/tests/capi/luaL_loadbuffer_proto/luaL_loadbuffer_proto_test.cc 844 594 51 22 36717 9553 luaL_loadbuffer_proto_test.cc
luaL_loadstring_test /src/testdir/tests/capi/luaL_loadstring_test.c 681 543 50 21 34782 8164 luaL_loadstring_test.c
torture_test /src/testdir/tests/capi/torture_test.cc 414 596 50 16 25592 5697 torture_test.cc
fuzz_lua /src/fuzz_lua.c 751 141 50 20 37593 8784 fuzz_lua.c

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: 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 3702 73.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1344 26.6%
All colors 5046 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
738 3517 luaF_newtbcupval call site: 03517 luaG_traceexec
643 2858 luaH_new call site: 02858 luaH_resize
207 1925 luaS_new call site: 01925 luaG_runerror
184 2665 luaV_finishset call site: 02665 luaG_typeerror
157 1757 luaD_precall call site: 01757 luaD_growstack
123 1370 luaD_callnoyield call site: 01370 luaE_checkcstack
123 1505 luaS_newlstr call site: 01505 luaD_throw
113 4566 newbuffsize call site: 04566 luaL_error
94 2311 getgeneric call site: 02311 luaG_runerror
87 580 genlink call site: 00580 traverseephemeron
87 1204 checkmajorminor call site: 01204 atomic2gen
81 669 traversetable call site: 00669 traverseproto

Runtime coverage analysis

Covered functions
191
Functions that are reachable but not covered
246
Reachable functions
433
Percentage of reachable functions covered
43.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_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 27
/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_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 3704 73.6%
gold [1:9] 4 0.07%
yellow [10:29] 0 0.0%
greenyellow [30:49] 12 0.23%
lawngreen 50+ 1307 25.9%
All colors 5027 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
738 3519 luaF_newtbcupval call site: 03519 luaG_traceexec
643 2860 luaH_new call site: 02860 luaH_resize
207 1927 luaS_new call site: 01927 luaG_runerror
184 2667 luaV_finishset call site: 02667 luaG_typeerror
157 1759 luaD_precall call site: 01759 luaD_growstack
123 1371 luaD_callnoyield call site: 01371 luaE_checkcstack
123 1506 luaS_newlstr call site: 01506 luaD_throw
113 4547 newbuffsize call site: 04547 luaL_error
94 2313 getgeneric call site: 02313 luaG_runerror
87 581 genlink call site: 00581 traverseephemeron
87 1205 checkmajorminor call site: 01205 atomic2gen
81 670 traversetable call site: 00670 traverseproto

Runtime coverage analysis

Covered functions
187
Functions that are reachable but not covered
246
Reachable functions
429
Percentage of reachable functions covered
42.66%
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 27
/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 3704 73.6%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1325 26.3%
All colors 5029 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
738 3519 luaF_newtbcupval call site: 03519 luaG_traceexec
643 2860 luaH_new call site: 02860 luaH_resize
207 1927 luaS_new call site: 01927 luaG_runerror
184 2667 luaV_finishset call site: 02667 luaG_typeerror
157 1759 luaD_precall call site: 01759 luaD_growstack
123 1371 luaD_callnoyield call site: 01371 luaE_checkcstack
123 1506 luaS_newlstr call site: 01506 luaD_throw
113 4547 newbuffsize call site: 04547 luaL_error
94 2313 getgeneric call site: 02313 luaG_runerror
87 581 genlink call site: 00581 traverseephemeron
87 1205 checkmajorminor call site: 01205 atomic2gen
81 670 traversetable call site: 00670 traverseproto

Runtime coverage analysis

Covered functions
186
Functions that are reachable but not covered
246
Reachable functions
428
Percentage of reachable functions covered
42.52%
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 27
/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_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 3720 74.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 12 0.23%
lawngreen 50+ 1295 25.7%
All colors 5027 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
738 3519 luaF_newtbcupval call site: 03519 luaG_traceexec
643 2860 luaH_new call site: 02860 luaH_resize
207 1927 luaS_new call site: 01927 luaG_runerror
184 2667 luaV_finishset call site: 02667 luaG_typeerror
157 1759 luaD_precall call site: 01759 luaD_growstack
123 1371 luaD_callnoyield call site: 01371 luaE_checkcstack
123 1506 luaS_newlstr call site: 01506 luaD_throw
113 4547 newbuffsize call site: 04547 luaL_error
94 2313 getgeneric call site: 02313 luaG_runerror
87 581 genlink call site: 00581 traverseephemeron
87 1205 checkmajorminor call site: 01205 atomic2gen
81 670 traversetable call site: 00670 traverseproto

Runtime coverage analysis

Covered functions
186
Functions that are reachable but not covered
247
Reachable functions
429
Percentage of reachable functions covered
42.42%
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 27
/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 3814 74.0%
gold [1:9] 1 0.01%
yellow [10:29] 0 0.0%
greenyellow [30:49] 12 0.23%
lawngreen 50+ 1322 25.6%
All colors 5149 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
738 3517 luaF_newtbcupval call site: 03517 luaG_traceexec
643 2858 luaH_new call site: 02858 luaH_resize
207 1925 luaS_new call site: 01925 luaG_runerror
184 2665 luaV_finishset call site: 02665 luaG_typeerror
157 1757 luaD_precall call site: 01757 luaD_growstack
123 1369 luaD_callnoyield call site: 01369 luaE_checkcstack
123 1504 luaS_newlstr call site: 01504 luaD_throw
112 4556 newbuffsize call site: 04556 luaL_error
110 4955 luaL_traceback call site: 04955 luaL_addvalue
94 2311 getgeneric call site: 02311 luaG_runerror
87 579 genlink call site: 00579 traverseephemeron
87 1203 checkmajorminor call site: 01203 atomic2gen

Runtime coverage analysis

Covered functions
191
Functions that are reachable but not covered
258
Reachable functions
445
Percentage of reachable functions covered
42.02%
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 27
/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_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 3703 73.4%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1338 26.5%
All colors 5041 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
738 3519 luaF_newtbcupval call site: 03519 luaG_traceexec
643 2860 luaH_new call site: 02860 luaH_resize
207 1927 luaS_new call site: 01927 luaG_runerror
184 2667 luaV_finishset call site: 02667 luaG_typeerror
157 1759 luaD_precall call site: 01759 luaD_growstack
123 1371 luaD_callnoyield call site: 01371 luaE_checkcstack
123 1506 luaS_newlstr call site: 01506 luaD_throw
113 4549 newbuffsize call site: 04549 luaL_error
94 2313 getgeneric call site: 02313 luaG_runerror
87 581 genlink call site: 00581 traverseephemeron
87 1205 checkmajorminor call site: 01205 atomic2gen
81 670 traversetable call site: 00670 traverseproto

Runtime coverage analysis

Covered functions
188
Functions that are reachable but not covered
247
Reachable functions
431
Percentage of reachable functions covered
42.69%
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 27
/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_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 526 7.27%
gold [1:9] 70 0.96%
yellow [10:29] 7 0.09%
greenyellow [30:49] 22 0.30%
lawngreen 50+ 6606 91.3%
All colors 7231 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
41 3551 luaV_equalobj call site: 03551 luaT_callTMres
22 4197 luaV_execute call site: 04197 luaG_traceexec
21 2289 equalkey call site: 02289 luaS_eqstr
20 668 traversetable call site: 00668 traverseudata
18 581 genlink call site: 00581 traverseweakvalue
18 2520 luaH_finishset call site: 02520 luaS_normstr
16 4236 luaT_adjustvarargs call site: 04236 createvarargtab
13 605 iscleared call site: 00605 genlink
13 964 luaC_fullgc call site: 00964 luaD_throw
13 2054 luaV_execute call site: 02054 luaG_traceexec
12 1447 addnum2buff call site: 01447 addnum2buff
12 1935 typeerror call site: 01935 luaG_runerror

Runtime coverage analysis

Covered functions
969
Functions that are reachable but not covered
53
Reachable functions
680
Percentage of reachable functions covered
92.21%
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 31
/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: 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 3391 47.3%
gold [1:9] 34 0.47%
yellow [10:29] 30 0.41%
greenyellow [30:49] 9 0.12%
lawngreen 50+ 3693 51.5%
All colors 7157 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
467 3066 luaV_tointegerns call site: 03066 luaG_traceexec
387 3551 luaV_equalobj call site: 03551 luaT_callTMres
271 1643 luaD_reallocstack call site: 01643 luaD_reallocstack
171 4646 luaF_newproto call site: 04646 loadFunction
159 2858 luaH_new call site: 02858 luaH_resize
157 3968 luaO_str2num call site: 03968 luaG_forerror
137 1995 luaP_isIT call site: 01995 luaD_hook
120 4132 luaF_newLclosure call site: 04132 luaF_findupval
112 2737 luaH_pset call site: 02737 luaG_runerror
93 2312 luaH_get call site: 02312 luaG_runerror
87 579 genlink call site: 00579 traverseephemeron
87 1203 checkmajorminor call site: 01203 atomic2gen

Runtime coverage analysis

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

Files reached

filename functions hit
/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 31
/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: 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 3389 48.1%
gold [1:9] 28 0.39%
yellow [10:29] 12 0.17%
greenyellow [30:49] 28 0.39%
lawngreen 50+ 3578 50.8%
All colors 7035 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
467 3066 luaV_tointegerns call site: 03066 luaG_traceexec
387 3551 luaV_equalobj call site: 03551 luaT_callTMres
271 1643 luaD_reallocstack call site: 01643 luaD_reallocstack
171 4640 luaF_newproto call site: 04640 loadFunction
159 2858 luaH_new call site: 02858 luaH_resize
157 3968 luaO_str2num call site: 03968 luaG_forerror
137 1995 luaP_isIT call site: 01995 luaD_hook
120 4132 luaF_newLclosure call site: 04132 luaF_findupval
112 2737 luaH_pset call site: 02737 luaG_runerror
93 2312 luaH_get call site: 02312 luaG_runerror
87 579 genlink call site: 00579 traverseephemeron
87 1203 checkmajorminor call site: 01203 atomic2gen

Runtime coverage analysis

Covered functions
459
Functions that are reachable but not covered
205
Reachable functions
658
Percentage of reachable functions covered
68.84%
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 31
/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_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 971 13.4%
gold [1:9] 61 0.84%
yellow [10:29] 49 0.67%
greenyellow [30:49] 68 0.93%
lawngreen 50+ 6086 84.1%
All colors 7235 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
79 4927 luaS_newextlstr call site: 04927 loadProtos
76 4838 luaF_newproto call site: 04838 loadFunction
41 3551 luaV_equalobj call site: 03551 luaT_callTMres
35 4197 luaV_execute call site: 04197 luaG_traceexec
31 2669 luaV_finishset call site: 02669 luaT_callTM
23 3812 luaD_pretailcall call site: 03812 precallC
21 2289 equalkey call site: 02289 luaS_eqstr
20 669 traversetable call site: 00669 traverseudata
20 1120 atomic call site: 01120 iscleared
18 582 genlink call site: 00582 traverseweakvalue
18 2520 luaH_finishset call site: 02520 luaS_normstr
18 6741 globalstatfunc call site: 06741 globalfunc

Runtime coverage analysis

Covered functions
937
Functions that are reachable but not covered
77
Reachable functions
680
Percentage of reachable functions covered
88.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.
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 31
/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_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 609 8.41%
gold [1:9] 71 0.98%
yellow [10:29] 57 0.78%
greenyellow [30:49] 13 0.17%
lawngreen 50+ 6485 89.6%
All colors 7235 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
41 3551 luaV_equalobj call site: 03551 luaT_callTMres
35 4197 luaV_execute call site: 04197 luaG_traceexec
21 2289 equalkey call site: 02289 luaS_eqstr
20 668 traversetable call site: 00668 traverseudata
18 581 genlink call site: 00581 traverseweakvalue
18 2520 luaH_finishset call site: 02520 luaS_normstr
16 4236 luaT_adjustvarargs call site: 04236 createvarargtab
13 605 iscleared call site: 00605 genlink
13 964 luaC_fullgc call site: 00964 luaD_throw
13 2054 luaV_execute call site: 02054 luaG_traceexec
12 1447 addnum2buff call site: 01447 addnum2buff
10 4867 loadAlign call site: 04867 getaddr_

Runtime coverage analysis

Covered functions
1031
Functions that are reachable but not covered
55
Reachable functions
681
Percentage of reachable functions covered
91.92%
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 31
/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: 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 4111 90.2%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 6 0.13%
lawngreen 50+ 440 9.65%
All colors 4557 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
1080 2858 luaH_new call site: 02858 luaH_resize
649 1925 luaS_new call site: 01925 luaG_runerror
615 1299 callallpendingfinalizers call site: 01299 GCTM
399 436 freeobj call site: 00436 entergen
282 3973 luaV_tonumber_ call site: 03973 luaG_forerror
204 2645 luaH_resize call site: 02645 luaH_newkey
145 1152 separatetobefnz call site: 01152 propagateall
118 1030 internshrstr call site: 01030 luaM_toobig
101 284 luaF_closeupval call site: 00284 luaC_barrier_
100 4261 luaH_setint call site: 04261 luaH_newkey
70 857 luaF_close call site: 00857 prepcallclosemth
44 198 luaM_free_ call site: 00198 freeupval

Runtime coverage analysis

Covered functions
73
Functions that are reachable but not covered
297
Reachable functions
370
Percentage of reachable functions covered
19.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/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 27
/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_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 1113 14.9%
gold [1:9] 16 0.21%
yellow [10:29] 2 0.02%
greenyellow [30:49] 28 0.37%
lawngreen 50+ 6290 84.4%
All colors 7449 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
79 5140 luaS_newextlstr call site: 05140 loadProtos
76 5051 luaF_newproto call site: 05051 loadFunction
41 3552 luaV_equalobj call site: 03552 luaT_callTMres
28 2781 luaV_execute call site: 02781 luaV_finishset
23 1670 precallC call site: 01670 luaD_hook
23 2345 luaV_execute call site: 02345 luaV_finishget
22 4198 luaV_execute call site: 04198 luaG_traceexec
21 1084 remarkupvals call site: 01084 reallymarkobject
21 2290 equalkey call site: 02290 luaS_eqstr
20 671 traversetable call site: 00671 traverseudata
20 1122 atomic call site: 01122 iscleared

Runtime coverage analysis

Covered functions
3468
Functions that are reachable but not covered
97
Reachable functions
844
Percentage of reachable functions covered
88.51%
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 31
/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 75
/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_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 837 11.5%
gold [1:9] 67 0.92%
yellow [10:29] 86 1.18%
greenyellow [30:49] 55 0.76%
lawngreen 50+ 6190 85.5%
All colors 7235 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
41 3551 luaV_equalobj call site: 03551 luaT_callTMres
35 4197 luaV_execute call site: 04197 luaG_traceexec
21 1447 addnum2buff call site: 01447 addnum2buff
21 2289 equalkey call site: 02289 luaS_eqstr
20 668 traversetable call site: 00668 traverseudata
18 581 genlink call site: 00581 traverseweakvalue
18 2520 luaH_finishset call site: 02520 luaS_normstr
17 6471 forstat call site: 06471 repeatstat
16 2054 luaV_execute call site: 02054 luaG_traceexec
16 4236 luaT_adjustvarargs call site: 04236 createvarargtab
14 7215 f_call call site: 07215 luaD_call
13 605 iscleared call site: 00605 genlink

Runtime coverage analysis

Covered functions
956
Functions that are reachable but not covered
65
Reachable functions
681
Percentage of reachable functions covered
90.46%
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 31
/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 3020 61.6%
gold [1:9] 173 3.53%
yellow [10:29] 305 6.22%
greenyellow [30:49] 120 2.44%
lawngreen 50+ 1282 26.1%
All colors 4900 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 3066 luaV_tointegerns call site: 03066 luaG_traceexec
260 3672 LEnum call site: 03672 lessequalothers
200 2858 luaH_new call site: 02858 luaH_resize
157 1757 luaD_precall call site: 01757 luaD_growstack
149 3976 luaV_tonumber_ call site: 03976 luaG_forerror
137 1995 luaP_isIT call site: 01995 luaD_hook
120 4132 luaF_newLclosure call site: 04132 luaF_findupval
114 2735 luaH_pset call site: 02735 luaG_runerror
93 2312 luaH_get call site: 02312 luaG_runerror
87 579 genlink call site: 00579 traverseephemeron
87 1203 checkmajorminor call site: 01203 atomic2gen
68 1925 luaS_new call site: 01925 luaG_runerror

Runtime coverage analysis

Covered functions
552
Functions that are reachable but not covered
169
Reachable functions
414
Percentage of reachable functions covered
59.18%
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 27
/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: 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 2675 34.7%
gold [1:9] 410 5.33%
yellow [10:29] 182 2.36%
greenyellow [30:49] 410 5.33%
lawngreen 50+ 4013 52.1%
All colors 7690 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
129 3796 luaV_execute call site: 03796 luaD_pretailcall
87 579 genlink call site: 00579 traverseephemeron
87 1203 checkmajorminor call site: 01203 atomic2gen
80 4731 luaS_newextlstr call site: 04731 loadProtos
80 7484 pushfuncname call site: 07484 pushglobalfuncname
79 4640 luaF_newproto call site: 04640 loadFunction
69 2868 luaV_execute call site: 02868 youngcollection
63 4017 luaV_execute call site: 04017 luaF_newtbcupval
62 4548 checkmode call site: 04548 luaU_undump
49 3551 luaV_equalobj call site: 03551 luaT_callTMres
48 6571 checktoclose call site: 06571 globalstatfunc
42 7241 lua_getinfo call site: 07241 collectvalidlines

Runtime coverage analysis

Covered functions
571
Functions that are reachable but not covered
187
Reachable functions
751
Percentage of reachable functions covered
75.1%
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 31
/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

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 402 0 5772 249
str_gsub /src/testdir/build/lua-master/source/lstrlib.c 1 ['N/A'] 173 0 418 57 18 453 0 6097 227
io_lines /src/testdir/build/lua-master/source/liolib.c 1 ['N/A'] 175 0 95 12 5 455 0 6032 153
str_format /src/testdir/build/lua-master/source/lstrlib.c 1 ['N/A'] 173 0 686 99 23 445 0 6044 135
luaB_loadfile /src/testdir/build/lua-master/source/lbaselib.c 1 ['N/A'] 172 0 48 3 2 688 0 8277 116
sort /src/testdir/build/lua-master/source/ltablib.c 1 ['N/A'] 171 0 76 12 5 401 0 5641 110
searcher_Croot /src/testdir/build/lua-master/source/loadlib.c 1 ['N/A'] 174 0 105 12 6 448 0 5980 90
str_pack /src/testdir/build/lua-master/source/lstrlib.c 1 ['N/A'] 172 0 770 84 24 434 0 5970 83
__lua_getiuservalue(lua_State*,FuzzedDataProvider*) /src/testdir/tests/capi/torture_test.cc 2 ['N/A', 'N/A'] 42 0 54 7 2 340 0 5059 68
db_sethook /src/testdir/build/lua-master/source/ldblib.c 1 ['N/A'] 173 0 164 16 7 406 0 5731 51

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

Functions statically reachable by fuzzers
73.0%
973 / 1334
Cyclomatic complexity statically reachable by fuzzers
87.0%
11529 / 13279

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/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_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_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_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_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_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/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', 'luaV_execute', 'equalkey', 'traversetable', 'genlink', 'luaH_finishset', 'luaT_adjustvarargs', 'iscleared', 'luaC_fullgc']

/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/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_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_execute', 'luaV_finishset', 'luaD_pretailcall', 'equalkey', 'traversetable', 'atomic', 'genlink']

/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', 'luaV_execute', 'equalkey', 'traversetable', 'genlink', 'luaH_finishset', 'luaT_adjustvarargs', 'iscleared', 'luaC_fullgc']

/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', 'luaF_closeupval', 'luaH_setint']

/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', 'remarkupvals', 'equalkey']

/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', 'addnum2buff', 'equalkey', 'traversetable', 'genlink', 'luaH_finishset', 'forstat', 'luaT_adjustvarargs']

/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/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=['luaV_execute', 'genlink', 'checkmajorminor', 'luaS_newextlstr', 'pushfuncname', 'luaF_newproto', 'checkmode', 'luaV_equalobj']

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% ['luaL_dostring_test', 'luaL_loadbuffer_test', 'lua_load_test']
byteoffset 46 23 50.0% ['luaL_loadbuffer_proto_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 106 53.26%
google::protobuf::TextFormat::Parser::ParserImpl::ConsumeFieldValue(google::protobuf::Message*,google::protobuf::Reflectionconst*,google::protobuf::FieldDescriptorconst*) 118 51 43.22%
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/lparser.c ['luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'fuzz_lua'] ['luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'fuzz_lua']
/src/fuzz_lua.c ['fuzz_lua'] ['fuzz_lua']
/src/testdir/build/lua-master/source/ltable.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/ldebug.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_traceback_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/ltm.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/lmem.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/linit.c ['luaL_loadbuffer_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test'] ['luaL_loadbuffer_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test']
/src/testdir/build/lua-master/source/lgc.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/tests/capi/luaL_buffaddr_test.c ['luaL_buffaddr_test'] ['luaL_buffaddr_test']
/src/testdir/build/lua-master/source/loslib.c [] []
/src/testdir/build/lua-master/source/lcorolib.c [] []
/src/testdir/tests/capi/luaL_dostring_test.c ['luaL_dostring_test'] ['luaL_dostring_test']
/src/testdir/build/lua-master/source/lcode.c ['luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'fuzz_lua'] ['luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/ldblib.c [] []
/src/testdir/tests/capi/lua_load_test.cc ['lua_load_test'] ['lua_load_test']
/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_buffsub_test.cc ['luaL_buffsub_test'] ['luaL_buffsub_test']
/src/testdir/build/lua-master/source/liolib.c [] []
/src/testdir/build/lua-master/source/lobject.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/ltablib.c [] []
/src/testdir/build/lua-master/source/lapi.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/lzio.c ['luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'fuzz_lua'] ['luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/lundump.c ['luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'fuzz_lua'] ['luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test']
/src/testdir/build/lua-master/source/llex.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/loadlib.c [] []
/usr/local/bin/../include/c++/v1/stdexcept [] []
/src/testdir/build/lua-master/source/lvm.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/lutf8lib.c [] []
/src/testdir/build/lua-master/source/lauxlib.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/lfunc.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/tests/capi/luaL_loadbuffer_proto/serializer.cc ['luaL_loadbuffer_proto_test'] ['luaL_loadbuffer_proto_test']
/src/testdir/tests/capi/lua_dump_test.c ['lua_dump_test'] ['lua_dump_test']
/src/testdir/build/lua-master/source/lstate.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/lmathlib.c [] []
/usr/local/bin/../include/c++/v1/string [] []
/src/testdir/build/lua-master/source/ldump.c ['lua_dump_test'] ['lua_dump_test']
/src/testdir/tests/capi/luaL_gsub_test.cc ['luaL_gsub_test'] ['luaL_gsub_test']
/src/testdir/tests/capi/luaL_loadstring_test.c ['luaL_loadstring_test'] ['luaL_loadstring_test']
/src/testdir/build/lua-master/source/ldo.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/tests/capi/luaL_bufflen_test.c ['luaL_bufflen_test'] ['luaL_bufflen_test']
/src/testdir/build/lua-master/source/lopcodes.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/build/lua-master/source/lstrlib.c [] []
/src/testdir/tests/capi/luaL_loadbufferx_test.c ['luaL_loadbufferx_test'] ['luaL_loadbufferx_test']
/src/testdir/tests/capi/luaL_addgsub_test.cc ['luaL_addgsub_test'] ['luaL_addgsub_test']
/src/testdir/build/lua-master/source/lbaselib.c [] []
/src/testdir/tests/capi/torture_test.cc ['torture_test'] ['torture_test']
/src/testdir/tests/capi/luaL_loadbuffer_test.c ['luaL_loadbuffer_test'] ['luaL_loadbuffer_test']
/src/testdir/build/lua-master/source/lstring.c ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua'] ['luaL_gsub_test', 'luaL_bufflen_test', 'luaL_buffsub_test', 'luaL_buffaddr_test', 'luaL_traceback_test', 'luaL_addgsub_test', 'luaL_loadbuffer_test', 'lua_dump_test', 'luaL_loadbufferx_test', 'lua_load_test', 'luaL_dostring_test', 'lua_stringtonumber_test', 'luaL_loadbuffer_proto_test', 'luaL_loadstring_test', 'torture_test', 'fuzz_lua']
/src/testdir/tests/capi/luaL_traceback_test.c ['luaL_traceback_test'] ['luaL_traceback_test']
/src/testdir/tests/capi/lua_stringtonumber_test.c ['lua_stringtonumber_test'] ['lua_stringtonumber_test']

Directories in report

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

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
luaL_gsub_test fuzzerLogFile-0-Rw4VjpLEFk.data fuzzerLogFile-0-Rw4VjpLEFk.data.yaml luaL_gsub_test.covreport
luaL_bufflen_test fuzzerLogFile-0-o8ddinokJn.data fuzzerLogFile-0-o8ddinokJn.data.yaml luaL_bufflen_test.covreport
luaL_buffsub_test fuzzerLogFile-0-90NzugoYvB.data fuzzerLogFile-0-90NzugoYvB.data.yaml luaL_buffsub_test.covreport
luaL_buffaddr_test fuzzerLogFile-0-2eXnMdOj4u.data fuzzerLogFile-0-2eXnMdOj4u.data.yaml luaL_buffaddr_test.covreport
luaL_traceback_test fuzzerLogFile-0-vwRsTd7KvM.data fuzzerLogFile-0-vwRsTd7KvM.data.yaml luaL_traceback_test.covreport
luaL_addgsub_test fuzzerLogFile-0-vuFU9veGfQ.data fuzzerLogFile-0-vuFU9veGfQ.data.yaml luaL_addgsub_test.covreport
luaL_loadbuffer_test fuzzerLogFile-0-Z9fO8wpw5e.data fuzzerLogFile-0-Z9fO8wpw5e.data.yaml luaL_loadbuffer_test.covreport
lua_dump_test fuzzerLogFile-0-ea7vTVdQ98.data fuzzerLogFile-0-ea7vTVdQ98.data.yaml lua_dump_test.covreport
luaL_loadbufferx_test fuzzerLogFile-0-ulUwZgDuSN.data fuzzerLogFile-0-ulUwZgDuSN.data.yaml luaL_loadbufferx_test.covreport
lua_load_test fuzzerLogFile-0-dJTToFAXn3.data fuzzerLogFile-0-dJTToFAXn3.data.yaml lua_load_test.covreport
luaL_dostring_test fuzzerLogFile-0-JeLEeW25Cx.data fuzzerLogFile-0-JeLEeW25Cx.data.yaml luaL_dostring_test.covreport
lua_stringtonumber_test fuzzerLogFile-0-9BKWR1oGKV.data fuzzerLogFile-0-9BKWR1oGKV.data.yaml lua_stringtonumber_test.covreport
luaL_loadbuffer_proto_test fuzzerLogFile-0-sr1faEbCML.data fuzzerLogFile-0-sr1faEbCML.data.yaml luaL_loadbuffer_proto_test.covreport
luaL_loadstring_test fuzzerLogFile-0-SCTd5b9yBi.data fuzzerLogFile-0-SCTd5b9yBi.data.yaml luaL_loadstring_test.covreport
torture_test fuzzerLogFile-0-LIr6b0Hxdl.data fuzzerLogFile-0-LIr6b0Hxdl.data.yaml torture_test.covreport
fuzz_lua fuzzerLogFile-0-bSpUTntjJW.data fuzzerLogFile-0-bSpUTntjJW.data.yaml fuzz_lua.covreport