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

Fuzzer details

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 349 34.1%
gold [1:9] 59 5.77%
yellow [10:29] 92 9.01%
greenyellow [30:49] 52 5.09%
lawngreen 50+ 469 45.9%
All colors 1021 100

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
3575 5361 4 :

['luaD_throw', 'changedline', 'luaD_hook', 'luaG_getfuncline']

3575 5361 luaG_traceexec call site: 00371 /src/lua/ldebug.c:885
1871 1871 1 :

['luaU_undump']

1871 5416 f_parser call site: 00000 /src/lua/ldo.c:992
1823 3616 4 :

['lua_type', 'lua_typename', 'luaL_callmeta', 'lua_pushfstring']

1823 5697 msghandler call site: 00810 /src/lua/fuzz_lua.c:103
1784 1784 1 :

['codeextraarg']

1784 3568 luaK_setlist call site: 00000 /src/lua/lcode.c:1811
1784 1784 1 :

['codeextraarg']

1784 3568 luaK_codek call site: 00000 /src/lua/lcode.c:452
1780 1780 1 :

['runafewfinalizers']

1780 1780 singlestep call site: 00065 /src/lua/lgc.c:1629
1771 1771 1 :

['luaH_setint']

1771 7104 luaH_resize call site: 00457 /src/lua/ltable.c:561
1770 3543 2 :

['luaF_newCclosure', 'luaC_step']

1770 3543 lua_pushcclosure call site: 00805 /src/lua/lapi.c:581
3 3 1 :

['findvararg']

3 3 luaG_findlocal call site: 00611 /src/lua/ldebug.c:200
0 3605 4 :

['luaY_nvarstack', 'luaK_patchlist', 'luaK_codeABCk', 'reglevel']

0 5391 gotostat call site: 00000 /src/lua/lparser.c:1421
0 3559 2 :

['luaO_pushfstring', 'luaK_semerror']

0 3559 getlocalattribute call site: 00000 /src/lua/lparser.c:1708
0 2791 1 :

['yindex']

0 11478 recfield call site: 00000 /src/lua/lparser.c:852

Runtime coverage analysis

Covered functions
533
Functions that are reachable but not covered
131
Reachable functions
658
Percentage of reachable functions covered
80.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
fuzz_lua.c 8
lauxlib.c 29
lstate.c 18
lstring.c 15
ldo.c 25
lmem.c 6
lgc.c 73
lfunc.c 14
ltable.c 37
ltm.c 15
ldebug.c 33
lobject.c 18
lvm.c 25
llex.c 1
lapi.c 44
lzio.c 1