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

Fuzzer details

Fuzzer: libtsm_fuzzer

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 39 9.26%
gold [1:9] 4 0.95%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 378 89.7%
All colors 421 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
4 4 2 :

['shl_array_get_length', 'shl_array_get_array']

4 4 tsm_symbol_get call site: 00092 /src/libtsm/src/tsm/tsm-unicode.c:218
2 4 2 :

['screen_cell_init', 'realloc']

2 4 line_resize call site: 00017 /src/libtsm/src/tsm/tsm-screen.c:165
2 2 1 :

['realloc']

2 2 shl_array_push call site: 00007 /src/libtsm/./src/shared/shl-array.h:135
2 2 1 :

['abort']

2 2 term_draw_cell call site: 00410 /src/libtsm_fuzzer.c:28
0 1969 1 :

['send_primary_da']

0 1969 csi_dev_attr call site: 00259 /src/libtsm/src/tsm/tsm-vte.c:1493
0 136 1 :

['screen_scroll_up']

0 136 screen_scroll_up call site: 00027 /src/libtsm/src/tsm/tsm-screen.c:278
0 68 1 :

['screen_scroll_up']

0 92 tsm_screen_resize call site: 00024 /src/libtsm/src/tsm/tsm-screen.c:715
0 56 1 :

['screen_scroll_down']

0 56 screen_scroll_down call site: 00146 /src/libtsm/src/tsm/tsm-screen.c:346
0 28 3 :

['tsm_symbol_table_unref', 'free', 'line_free']

0 28 tsm_screen_new call site: 00009 /src/libtsm/src/tsm/tsm-screen.c:491
0 8 1 :

['move_cursor']

0 8 tsm_screen_resize call site: 00036 /src/libtsm/src/tsm/tsm-screen.c:726
0 0 None 6 152 tsm_screen_resize call site: 00009 /src/libtsm/src/tsm/tsm-screen.c:593
0 0 None 6 6 get_palette call site: 00055 /src/libtsm/src/tsm/tsm-vte.c:298

Runtime coverage analysis

Covered functions
111
Functions that are reachable but not covered
12
Reachable functions
123
Percentage of reachable functions covered
90.24%
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
libtsm_fuzzer.c 3
libtsmtsm/tsm-screen.c 51
libtsmtsm/tsm-unicode.c 13
libtsmshared/shl-htable.c 6
libtsm/.shared/shl-array.h 5
libtsmtsm/libtsm-int.h 1
libtsm/.shared/shl-llog.h 1
libtsmtsm/tsm-vte.c 33
libtsm/external/wcwidth.c 2
libtsmtsm/tsm-render.c 1