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

Project functions overview

The following table shows data about each function in the project. The functions included in this table correspond to all functions that exist in the executables of the fuzzers. As such, there may be functions that are from third-party libraries.

For further technical details on the meaning of columns in the below table, please see the Glossary .

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

Fuzzer details

Fuzzer: fuzz-aat

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 169 91.8%
gold [1:9] 0 0.0%
yellow [10:29] 4 2.17%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 11 5.97%
All colors 184 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 65 Stream::read_bytes call site: 00065 ItemVariationStore::parse_delta
38 145 Lookup::value call site: 00145 Lookup::parse
30 32 Stream::read_bytes call site: 00032 DeltaSetIndexMap::map
10 3 LazyArray16::len call site: 00003 u16_to_u8_vec
8 17 u16_to_u8_vec call site: 00017 Lookup::parse
4 26 Stream::read_bytes call site: 00026 BinarySearchTable::get
1 0 EP call site: 00000

Runtime coverage analysis

Covered functions
30
Functions that are reachable but not covered
13
Reachable functions
19
Percentage of reachable functions covered
31.58%
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
fuzz/fuzz_targets/fuzz-aat.rs 14
src/parser.rs 11
tests/tables/cff1.rs 1
src/aat.rs 9
src/delta_set.rs 11
c-api/lib.rs 9
src/tables/hvar.rs 5
src/var_store.rs 15
src/lib.rs 4

Fuzzer: fuzz-cpal

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 145 83.3%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 29 16.6%
All colors 174 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
95 63 VecPainter::paint call site: 00063 ItemVariationStore::parse_delta
28 31 Stream::read_bytes call site: 00031 BinarySearchTable::get
9 14 Stream::read_bytes call site: 00014 Stream::new_at
4 3 LazyArray16::len call site: 00003 Stream::read
4 8 Stream::read_bytes call site: 00008 BinarySearchTable::get
3 25 Stream::new_at call site: 00025 Stream::read
1 0 EP call site: 00000
1 172 VecPainter::paint call site: 00172

Runtime coverage analysis

Covered functions
168
Functions that are reachable but not covered
2
Reachable functions
8
Percentage of reachable functions covered
75.0%
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
fuzz/fuzz_targets/fuzz-cpal.rs 8
src/parser.rs 10
src/aat.rs 10
tests/tables/colr.rs 10
src/delta_set.rs 11
c-api/lib.rs 9
src/tables/hvar.rs 5
src/var_store.rs 15
src/lib.rs 4

Fuzzer: fuzz-table-with-builder

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 573 69.6%
gold [1:9] 4 0.48%
yellow [10:29] 4 0.48%
greenyellow [30:49] 1 0.12%
lawngreen 50+ 241 29.2%
All colors 823 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
180 60 LazyArray16::get call site: 00060 ItemVariationStore::parse_delta
116 706 Table::parse_inner call site: 00706 BinarySearchTable::get
105 337 Face::parse_tables call site: 00337 Table::parse_inner
23 33 Stream::read_bytes call site: 00033 BinarySearchTable::get
18 590 super::charset::parse_charset call site: 00590 ttfp_get_glyph_hor_advance
18 672 parse_private_dict call site: 00672 ttfp_get_glyph_hor_advance
16 284 Face::parse_tables call site: 00284 BinarySearchTable::get
16 302 Face::parse_tables call site: 00302 BinarySearchTable::get
16 320 Face::parse_tables call site: 00320 BinarySearchTable::get
13 509 parse_float call site: 00509
9 15 Stream::read_bytes call site: 00015 Stream::new_at
8 487 DictionaryParser::parse_operands call site: 00487 parse_float

Runtime coverage analysis

Covered functions
209
Functions that are reachable but not covered
15
Reachable functions
34
Percentage of reachable functions covered
55.88%
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
fuzz/fuzz_targets/fuzz-table-with-builder.rs 9
src/parser.rs 13
src/aat.rs 38
tests/tables/cff1.rs 13
src/tables/glyf.rs 18
c-api/lib.rs 9
src/tables/hvar.rs 5
src/delta_set.rs 11
src/var_store.rs 15
src/lib.rs 25
tests/tables/cmap.rs 5
tests/tables/main.rs 2
src/tables/cff/cff1.rs 34
src/tables/cff/cff2.rs 12
src/tables/cff/dict.rs 29
src/tables/cff/charset.rs 14
src/tables/cff/encoding.rs 8
src/tables/math.rs 5
tests/tables/colr.rs 2

Fuzzer: fuzz-glyph-index

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 450 59.1%
gold [1:9] 10 1.31%
yellow [10:29] 5 0.65%
greenyellow [30:49] 15 1.97%
lawngreen 50+ 281 36.9%
All colors 761 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
50 108 Stream::new_at call site: 00108 RegionAxisCoordinatesRecord::evaluate_axis
48 20 RawFace::parse call site: 00020 convert
39 721 Face::parse_tables call site: 00721 DeltaSetIndexMap::map
21 70 cmap::Subtable4::parse call site: 00070 DeltaSetIndexMap::map
18 510 super::charset::parse_charset call site: 00510 ttfp_get_glyph_hor_advance
18 592 parse_private_dict call site: 00592 ttfp_get_glyph_hor_advance
17 258 Face::parse_tables call site: 00258 BinarySearchTable::get
17 279 Face::parse_tables call site: 00279 BinarySearchTable::get
17 342 Face::parse_tables call site: 00342 BinarySearchTable::get
16 222 Face::parse_tables call site: 00222 BinarySearchTable::get
16 240 Face::parse_tables call site: 00240 BinarySearchTable::get
16 298 Face::parse_tables call site: 00298 BinarySearchTable::get

Runtime coverage analysis

Covered functions
360
Functions that are reachable but not covered
13
Reachable functions
28
Percentage of reachable functions covered
53.57%
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
fuzz/fuzz_targets/fuzz-glyph-index.rs 3
src/aat.rs 37
src/parser.rs 11
tests/tables/cmap.rs 5
tests/tables/main.rs 2
tests/tables/cff1.rs 8
c-api/lib.rs 19
src/tables/hvar.rs 5
src/delta_set.rs 11
src/var_store.rs 15
src/lib.rs 25
src/tables/cff/cff1.rs 34
src/tables/cff/cff2.rs 12
src/tables/cff/dict.rs 29
src/tables/cff/charset.rs 14
src/tables/cff/encoding.rs 8
src/tables/math.rs 5
src/tables/name.rs 1

Fuzzer: fuzz-table

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 726 82.5%
gold [1:9] 123 13.9%
yellow [10:29] 9 1.02%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 22 2.5%
All colors 880 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
115 242 Stream::read_bytes call site: 00242 BinarySearchTable::get
89 600 Constants::read_i16 call site: 00600 BinarySearchTable::get
76 506 DeltaSetIndexMap::map call site: 00506 Table::glyph_range
64 136 DeltaSetIndexMap::map call site: 00136 DeltaSetIndexMap::map
61 425 LazyArray16::len call site: 00425 gen_cff
58 804 svg::Table::parse call site: 00804 BinarySearchTable::get
42 690 Table::glyph_class call site: 00690 BinarySearchTable::get
36 203 cmap::Subtable4::parse call site: 00203 format4::invalid_offset
31 387 Subtable0::glyphs_kerning call site: 00387 gen_cff
26 759 Name::is_unicode call site: 00759 BinarySearchTable::get
20 364 trak::Table::parse call site: 00364 BinarySearchTable::get
20 737 ttf_parser::Tag::from_bytes call site: 00737 BinarySearchTable::get

Runtime coverage analysis

Covered functions
305
Functions that are reachable but not covered
5
Reachable functions
54
Percentage of reachable functions covered
90.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.
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
fuzz/fuzz_targets/fuzz-table.rs 51
src/parser.rs 12
src/aat.rs 21
c-api/lib.rs 19
src/tables/name.rs 8
src/delta_set.rs 11
src/tables/hvar.rs 5
src/var_store.rs 15
src/lib.rs 5
tests/tables/cmap.rs 11
tests/tables/main.rs 2
tests/tables/cff1.rs 23
src/tables/kerx.rs 4
src/tables/loca.rs 4
src/tables/math.rs 8
src/tables/gdef.rs 2
src/tables/mvar.rs 3
src/tables/stat.rs 1
src/tables/vvar.rs 3

Fuzzer: fuzz-outline

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 448 60.0%
gold [1:9] 6 0.80%
yellow [10:29] 14 1.87%
greenyellow [30:49] 20 2.68%
lawngreen 50+ 258 34.5%
All colors 746 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
71 20 RawFace::parse call site: 00020 DeltaSetIndexMap::map
24 721 Face::parse_tables call site: 00721 Constants::subscript_baseline_drop_min
23 145 VarCoords::as_slice call site: 00145 format4::invalid_offset
18 108 Stream::new_at call site: 00108 BinarySearchTable::get
18 315 Face::parse_tables call site: 00315 BinarySearchTable::get
18 510 super::charset::parse_charset call site: 00510 ttfp_get_glyph_hor_advance
18 592 parse_private_dict call site: 00592 ttfp_get_glyph_hor_advance
17 258 Face::parse_tables call site: 00258 BinarySearchTable::get
17 279 Face::parse_tables call site: 00279 BinarySearchTable::get
17 342 Face::parse_tables call site: 00342 BinarySearchTable::get
16 222 Face::parse_tables call site: 00222 BinarySearchTable::get
16 240 Face::parse_tables call site: 00240 BinarySearchTable::get

Runtime coverage analysis

Covered functions
504
Functions that are reachable but not covered
14
Reachable functions
31
Percentage of reachable functions covered
54.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.
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
fuzz/fuzz_targets/fuzz-outline.rs 6
src/aat.rs 37
src/parser.rs 11
tests/tables/cmap.rs 5
tests/tables/main.rs 2
tests/tables/cff1.rs 8
c-api/lib.rs 10
src/tables/hvar.rs 5
src/delta_set.rs 11
src/var_store.rs 15
src/lib.rs 25
src/tables/cff/cff1.rs 34
src/tables/cff/cff2.rs 12
src/tables/cff/dict.rs 29
src/tables/cff/charset.rs 14
src/tables/cff/encoding.rs 8
src/tables/math.rs 5
tests/tables/colr.rs 2

Fuzzer: fuzz-variable-outline

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 456 56.7%
gold [1:9] 13 1.61%
yellow [10:29] 18 2.24%
greenyellow [30:49] 10 1.24%
lawngreen 50+ 306 38.1%
All colors 803 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
54 20 RawFace::parse call site: 00020 convert
23 145 VarCoords::as_slice call site: 00145 format4::invalid_offset
21 721 Face::parse_tables call site: 00721 Constants::subscript_baseline_drop_min
18 108 Stream::new_at call site: 00108 BinarySearchTable::get
18 510 super::charset::parse_charset call site: 00510 ttfp_get_glyph_hor_advance
18 592 parse_private_dict call site: 00592 ttfp_get_glyph_hor_advance
17 258 Face::parse_tables call site: 00258 BinarySearchTable::get
17 279 Face::parse_tables call site: 00279 BinarySearchTable::get
17 342 Face::parse_tables call site: 00342 BinarySearchTable::get
16 75 Face::is_variable call site: 00075 DeltaSetIndexMap::map
16 222 Face::parse_tables call site: 00222 BinarySearchTable::get
16 240 Face::parse_tables call site: 00240 BinarySearchTable::get

Runtime coverage analysis

Covered functions
509
Functions that are reachable but not covered
15
Reachable functions
35
Percentage of reachable functions covered
57.14%
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
fuzz/fuzz_targets/fuzz-variable-outline.rs 9
src/aat.rs 37
src/parser.rs 13
tests/tables/cmap.rs 5
tests/tables/main.rs 2
tests/tables/cff1.rs 8
c-api/lib.rs 21
src/tables/hvar.rs 5
src/delta_set.rs 11
src/var_store.rs 15
src/lib.rs 28
src/tables/cff/cff1.rs 34
src/tables/cff/cff2.rs 12
src/tables/cff/dict.rs 29
src/tables/cff/charset.rs 14
src/tables/cff/encoding.rs 8
src/tables/math.rs 5
src/tables/fvar.rs 2
src/tables/avar.rs 12
tests/tables/colr.rs 2

Fuzzer: fuzz-base

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 763 62.5%
gold [1:9] 64 5.25%
yellow [10:29] 12 0.98%
greenyellow [30:49] 9 0.73%
lawngreen 50+ 371 30.4%
All colors 1219 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
52 1071 ttf::Face::parse call site: 01071 ttfp_get_superscript_metrics
48 24 RawFace::parse call site: 00024 convert
39 907 LazyArray16::last call site: 00907 resolve_coords_len
34 1011 Name::is_unicode call site: 01011 DeltaSetIndexMap::map
33 822 Table::windows_descender call site: 00822 DeltaSetIndexMap::map
30 1188 i16::try_num_from call site: 01188 Table::advance_offset
24 947 Face::outline_glyph call site: 00947 resolve_coords_len
23 797 Table::windows_ascender call site: 00797 DeltaSetIndexMap::map
23 972 Face::outline_glyph call site: 00972 resolve_coords_len
18 111 Stream::new_at call site: 00111 BinarySearchTable::get
18 724 Face::parse_tables call site: 00724 Constants::subscript_baseline_drop_min
17 261 Face::parse_tables call site: 00261 BinarySearchTable::get

Runtime coverage analysis

Covered functions
549
Functions that are reachable but not covered
17
Reachable functions
68
Percentage of reachable functions covered
75.0%
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
fuzz/fuzz_targets/fuzz-base.rs 43
src/parser.rs 14
src/aat.rs 39
tests/tables/cmap.rs 5
tests/tables/main.rs 5
tests/tables/cff1.rs 13
c-api/lib.rs 52
src/tables/hvar.rs 6
src/delta_set.rs 11
src/var_store.rs 15
src/lib.rs 32
src/tables/cff/cff1.rs 34
src/tables/cff/cff2.rs 12
src/tables/cff/dict.rs 29
src/tables/cff/charset.rs 14
src/tables/cff/encoding.rs 8
src/tables/math.rs 5
src/tables/name.rs 8
src/language.rs 2
src/tables/os2.rs 6
tests/tables/colr.rs 5
src/tables/glyf.rs 18
src/tables/svg.rs 5
src/tables/sbix.rs 3
src/tables/vvar.rs 3

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.

fuzz/fuzz_targets/fuzz-aat.rs

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=['Stream::read_bytes', 'Lookup::value', 'LazyArray16::len', 'u16_to_u8_vec']

fuzz/fuzz_targets/fuzz-cpal.rs

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=['VecPainter::paint', 'Stream::read_bytes', 'LazyArray16::len', 'Stream::new_at']

fuzz/fuzz_targets/fuzz-table-with-builder.rs

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=['LazyArray16::get', 'Table::parse_inner', 'Face::parse_tables', 'Stream::read_bytes', 'super::charset::parse_charset', 'parse_private_dict', 'parse_float']

fuzz/fuzz_targets/fuzz-glyph-index.rs

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=['Stream::new_at', 'RawFace::parse', 'Face::parse_tables', 'cmap::Subtable4::parse', 'super::charset::parse_charset', 'parse_private_dict']

fuzz/fuzz_targets/fuzz-table.rs

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=['Stream::read_bytes', 'Constants::read_i16', 'DeltaSetIndexMap::map', 'LazyArray16::len', 'svg::Table::parse', 'Table::glyph_class', 'cmap::Subtable4::parse', 'Subtable0::glyphs_kerning', 'Name::is_unicode']

fuzz/fuzz_targets/fuzz-outline.rs

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=['RawFace::parse', 'Face::parse_tables', 'VarCoords::as_slice', 'Stream::new_at', 'super::charset::parse_charset', 'parse_private_dict']

fuzz/fuzz_targets/fuzz-variable-outline.rs

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=['RawFace::parse', 'VarCoords::as_slice', 'Face::parse_tables', 'Stream::new_at', 'super::charset::parse_charset', 'parse_private_dict', 'Face::is_variable']

fuzz/fuzz_targets/fuzz-base.rs

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=['ttf::Face::parse', 'RawFace::parse', 'LazyArray16::last', 'Name::is_unicode', 'Table::windows_descender', 'i16::try_num_from', 'Face::outline_glyph', 'Table::windows_ascender', 'Stream::new_at']

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/ttf-parser/tests/tables/maxp.rs [] []
/src/ttf-parser/tests/tables/aat.rs [] []
/src/ttf-parser/src/tables/gdef.rs ['fuzz-table'] ['fuzz-table']
/src/ttf-parser/fuzz/fuzz_targets/fuzz-aat.rs ['fuzz-aat'] ['fuzz-aat']
/src/ttf-parser/src/language.rs ['fuzz-base'] ['fuzz-base']
/src/ttf-parser/src/tables/loca.rs ['fuzz-table'] ['fuzz-table']
/src/ttf-parser/src/tables/colr.rs [] []
/src/ttf-parser/src/tables/cff/mod.rs [] []
/src/ttf-parser/tests/tables/ankr.rs [] []
/src/ttf-parser/src/tables/cff/cff2.rs ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/src/tables/cmap/format6.rs [] []
/src/ttf-parser/src/delta_set.rs ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/src/var_store.rs ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/src/tables/morx.rs [] []
/src/ttf-parser/src/tables/kerx.rs ['fuzz-table'] ['fuzz-table']
/src/ttf-parser/src/tables/cmap/mod.rs [] []
/src/ttf-parser/fuzz/fuzz_targets/fuzz-table-with-builder.rs ['fuzz-table-with-builder'] []
/src/ttf-parser/src/tables/sbix.rs ['fuzz-base'] ['fuzz-base']
/src/ttf-parser/src/aat.rs ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/src/tables/name.rs ['fuzz-glyph-index', 'fuzz-table', 'fuzz-base'] ['fuzz-glyph-index', 'fuzz-table', 'fuzz-base']
/src/ttf-parser/src/tables/glyf.rs ['fuzz-table-with-builder', 'fuzz-base'] ['fuzz-table-with-builder', 'fuzz-base']
/src/ttf-parser/src/tables/cpal.rs [] []
/src/ttf-parser/src/tables/cmap/format13.rs [] []
/src/ttf-parser/fuzz/fuzz_targets/fuzz-cpal.rs ['fuzz-cpal'] ['fuzz-cpal']
/src/ttf-parser/src/parser.rs ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/src/tables/cmap/format12.rs [] []
/src/ttf-parser/src/tables/stat.rs ['fuzz-table'] ['fuzz-table']
/src/ttf-parser/fuzz/fuzz_targets/fuzz-glyph-index.rs ['fuzz-glyph-index'] []
/src/ttf-parser/src/tables/cmap/format2.rs [] []
/src/ttf-parser/tests/tables/main.rs ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] []
/src/ttf-parser/tests/tables/glyf.rs [] []
/src/ttf-parser/src/tables/cff/index.rs [] []
/src/ttf-parser/src/tables/kern.rs [] []
/src/ttf-parser/tests/bitmap.rs [] []
/src/ttf-parser/src/tables/cmap/format14.rs [] []
/src/ttf-parser/fuzz/fuzz_targets/fuzz-variable-outline.rs ['fuzz-variable-outline'] ['fuzz-variable-outline']
/src/ttf-parser/src/tables/hvar.rs ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-base']
/src/ttf-parser/fuzz/fuzz_targets/fuzz-base.rs ['fuzz-base'] ['fuzz-base']
/src/ttf-parser/src/tables/mvar.rs ['fuzz-table'] ['fuzz-table']
/src/ttf-parser/src/tables/vorg.rs [] []
/src/ttf-parser/tests/tables/colr.rs ['fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/fuzz/fuzz_targets/fuzz-outline.rs ['fuzz-outline'] []
/src/ttf-parser/src/tables/cblc.rs [] []
/src/ttf-parser/src/tables/math.rs ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/examples/font-info.rs [] []
/src/ttf-parser/tests/tables/hmtx.rs [] []
/src/ttf-parser/src/tables/fvar.rs ['fuzz-variable-outline'] ['fuzz-variable-outline']
/src/ttf-parser/src/lib.rs ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/src/tables/cmap/format10.rs [] []
/src/ttf-parser/src/tables/hmtx.rs [] []
/src/ttf-parser/src/tables/trak.rs [] []
/src/ttf-parser/tests/tables/sbix.rs [] []
/src/ttf-parser/src/tables/feat.rs [] []
/src/ttf-parser/src/tables/cmap/format4.rs [] []
/src/ttf-parser/src/tables/cff/dict.rs ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/src/tables/cff/argstack.rs [] []
/src/ttf-parser/src/tables/vvar.rs ['fuzz-table', 'fuzz-base'] ['fuzz-table', 'fuzz-base']
/src/ttf-parser/src/tables/gvar.rs [] []
/src/ttf-parser/src/tables/cff/cff1.rs ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/src/tables/gsub.rs [] []
/src/ttf-parser/fuzz/fuzz_targets/fuzz-table.rs ['fuzz-table'] []
/src/ttf-parser/tests/tables/cmap.rs ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-outline', 'fuzz-variable-outline']
/src/ttf-parser/examples/font2svg.rs [] []
/src/ttf-parser/tests/tables/trak.rs [] []
/src/ttf-parser/benches/methods_perf.rs [] []
/src/ttf-parser/src/tables/ankr.rs [] []
/src/ttf-parser/src/tables/cff/encoding.rs ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/tests/tables/cff1.rs ['fuzz-aat', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-aat', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/src/tables/gpos.rs [] []
/src/ttf-parser/src/ggg/mod.rs [] []
/src/ttf-parser/src/ggg/chained_context.rs [] []
/src/ttf-parser/src/ggg/lookup.rs [] []
/src/ttf-parser/src/tables/cff/charstring.rs [] []
/src/ttf-parser/src/tables/post.rs [] []
/src/ttf-parser/src/ggg/feature_variations.rs [] []
/src/ttf-parser/src/tables/svg.rs ['fuzz-base'] ['fuzz-base']
/src/ttf-parser/src/tables/cff/charset.rs ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] ['fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base']
/src/ttf-parser/c-api/lib.rs ['fuzz-aat', 'fuzz-cpal', 'fuzz-table-with-builder', 'fuzz-glyph-index', 'fuzz-table', 'fuzz-outline', 'fuzz-variable-outline', 'fuzz-base'] []
/src/ttf-parser/src/tables/os2.rs ['fuzz-base'] ['fuzz-base']
/src/ttf-parser/src/ggg/layout_table.rs [] []
/src/ttf-parser/benches/methods_perf_x1000.rs [] []
/src/ttf-parser/src/tables/cmap/format0.rs [] []
/src/ttf-parser/src/ggg/context.rs [] []
/src/ttf-parser/src/tables/avar.rs ['fuzz-variable-outline'] ['fuzz-variable-outline']

Directories in report

Directory
/src/ttf-parser/tests/
/src/ttf-parser/benches/
/src/ttf-parser/src/tables/
/src/ttf-parser/c-api/
/src/ttf-parser/fuzz/fuzz_targets/
/src/ttf-parser/src/tables/cff/
/src/ttf-parser/examples/
/src/ttf-parser/src/ggg/
/src/ttf-parser/tests/tables/
/src/ttf-parser/src/
/src/ttf-parser/src/tables/cmap/