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
fuzzerPolygonToCellsNoHoles apps/fuzzers/fuzzerPolygonToCellsNoHoles.c 103 170 13 13 1108 493 fuzzerPolygonToCellsNoHoles.c
fuzzerResolutions apps/fuzzers/fuzzerResolutions.c 10 262 2 5 78 33 fuzzerResolutions.c
fuzzerConstructCell apps/fuzzers/fuzzerConstructCell.c 3 269 1 2 45 19 fuzzerConstructCell.c
fuzzerIndexIO apps/fuzzers/fuzzerIndexIO.c 5 267 2 2 18 13 fuzzerIndexIO.c
fuzzerPolygonToCellsExperimental apps/fuzzers/fuzzerPolygonToCellsExperimental.c 124 164 12 14 1259 565 fuzzerPolygonToCellsExperimental.c
fuzzerPolygonToCellsExperimentalNoHoles apps/fuzzers/fuzzerPolygonToCellsExperimentalNoHoles.c 123 164 12 14 1243 558 fuzzerPolygonToCellsExperimentalNoHoles.c
fuzzerCellToLatLng apps/fuzzers/fuzzerCellToLatLng.c 54 218 9 8 381 190 fuzzerCellToLatLng.c
fuzzerVertexes apps/fuzzers/fuzzerVertexes.c 73 199 8 10 729 330 fuzzerVertexes.c
fuzzerDirectedEdge apps/fuzzers/fuzzerDirectedEdge.c 86 186 8 12 869 395 fuzzerDirectedEdge.c
fuzzerLocalIj apps/fuzzers/fuzzerLocalIj.c 47 245 7 6 642 267 fuzzerLocalIj.c
fuzzerCellProperties apps/fuzzers/fuzzerCellProperties.c 59 213 9 8 665 297 fuzzerCellProperties.c
fuzzerCellToChildPos apps/fuzzers/fuzzerCellToChildPos.c 12 260 4 4 172 65 fuzzerCellToChildPos.c
fuzzerDistances apps/fuzzers/fuzzerDistances.c 8 264 2 2 15 17 fuzzerDistances.c
fuzzerEdgeLength apps/fuzzers/fuzzerEdgeLength.c 62 210 9 10 492 233 fuzzerEdgeLength.c
fuzzerGridDisk apps/fuzzers/fuzzerGridDisk.c 28 244 6 7 408 180 fuzzerGridDisk.c
fuzzerCellArea apps/fuzzers/fuzzerCellArea.c 57 215 9 10 407 201 fuzzerCellArea.c
fuzzerInternalAlgos apps/fuzzers/fuzzerInternalAlgos.c 15 257 3 5 191 85 fuzzerInternalAlgos.c
fuzzerHierarchy apps/fuzzers/fuzzerHierarchy.c 19 253 4 5 133 65 fuzzerHierarchy.c
fuzzerInternalCoordIjk apps/fuzzers/fuzzerInternalCoordIjk.c 9 0 3 3 125 55 fuzzerInternalCoordIjk.c
fuzzerCellsToMultiPolygon apps/fuzzers/fuzzerCellsToMultiPolygon.c 111 161 11 15 1090 484 fuzzerCellsToMultiPolygon.c
fuzzerCellsToLinkedMultiPolygon apps/fuzzers/fuzzerCellsToLinkedMultiPolygon.c 118 154 12 16 1168 516 fuzzerCellsToLinkedMultiPolygon.c
fuzzerLatLngToCell apps/fuzzers/fuzzerLatLngToCell.c 48 224 9 7 313 173 fuzzerLatLngToCell.c
fuzzerCompact apps/fuzzers/fuzzerCompact.c 20 252 4 5 255 105 fuzzerCompact.c
fuzzerPolygonToCells apps/fuzzers/fuzzerPolygonToCells.c 104 170 13 13 1124 500 fuzzerPolygonToCells.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: fuzzerPolygonToCellsNoHoles

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 287 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 287 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
286 0 EP call site: 00000 run

Runtime coverage analysis

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

Files reached

filename functions hit
apps/fuzzers/fuzzerPolygonToCellsNoHoles.c 2
h3lib/lib/algos.c 9
h3lib/lib/polygon.c 3
h3lib/include/polygonAlgos.h 2
h3lib/lib/bbox.c 5
h3lib/lib/h3Index.c 16
h3lib/lib/baseCells.c 5
h3lib/include/coordijk.h 20
h3lib/lib/faceijk.c 13
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 4
h3lib/include/vec3d.h 9
h3lib/lib/mathExtensions.c 1

Fuzzer: fuzzerResolutions

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 0 0.0%
gold [1:9] 1 10.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 9 90.0%
All colors 10 100

Runtime coverage analysis

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

Files reached

filename functions hit
apps/fuzzers/fuzzerResolutions.c 1
h3lib/lib/latLng.c 5
h3lib/lib/mathExtensions.c 1
h3lib/lib/h3Index.c 2
h3lib/lib/baseCells.c 1

Fuzzer: fuzzerConstructCell

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 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 1 20.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 4 80.0%
All colors 5 100

Runtime coverage analysis

Covered functions
2
Functions that are reachable but not covered
1
Reachable functions
3
Percentage of reachable functions covered
66.67%
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
apps/fuzzers/fuzzerConstructCell.c 1
h3lib/lib/h3Index.c 1

Fuzzer: fuzzerIndexIO

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 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 4 80.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 1 20.0%
All colors 5 100

Runtime coverage analysis

Covered functions
3
Functions that are reachable but not covered
2
Reachable functions
5
Percentage of reachable functions covered
60.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.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerIndexIO.c 1
h3lib/lib/h3Index.c 2

Fuzzer: fuzzerPolygonToCellsExperimental

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 340 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 340 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
339 0 EP call site: 00000 polygonToCellsExperimental

Runtime coverage analysis

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

Files reached

filename functions hit
apps/fuzzers/fuzzerPolygonToCellsExperimental.c 3
h3lib/lib/polyfill.c 14
h3lib/lib/h3Index.c 19
h3lib/lib/polygon.c 7
h3lib/include/polygonAlgos.h 2
h3lib/lib/bbox.c 9
h3lib/lib/latLng.c 3
h3lib/lib/baseCells.c 4
h3lib/include/coordijk.h 20
h3lib/lib/faceijk.c 13
h3lib/lib/vec2d.c 3
h3lib/include/vec3d.h 9
h3lib/lib/mathExtensions.c 1
h3lib/lib/iterators.c 6

Fuzzer: fuzzerPolygonToCellsExperimentalNoHoles

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 336 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 336 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
335 0 EP call site: 00000 polygonToCellsExperimental

Runtime coverage analysis

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

Files reached

filename functions hit
apps/fuzzers/fuzzerPolygonToCellsExperimentalNoHoles.c 2
h3lib/lib/polyfill.c 14
h3lib/lib/h3Index.c 19
h3lib/lib/polygon.c 7
h3lib/include/polygonAlgos.h 2
h3lib/lib/bbox.c 9
h3lib/lib/latLng.c 3
h3lib/lib/baseCells.c 4
h3lib/include/coordijk.h 20
h3lib/lib/faceijk.c 13
h3lib/lib/vec2d.c 3
h3lib/include/vec3d.h 9
h3lib/lib/mathExtensions.c 1
h3lib/lib/iterators.c 6

Fuzzer: fuzzerCellToLatLng

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 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 9 5.80%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 146 94.1%
All colors 155 100

Runtime coverage analysis

Covered functions
46
Functions that are reachable but not covered
8
Reachable functions
54
Percentage of reachable functions covered
85.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
apps/fuzzers/fuzzerCellToLatLng.c 1
h3lib/lib/h3Index.c 9
h3lib/lib/baseCells.c 1
h3lib/include/coordijk.h 15
h3lib/lib/faceijk.c 9
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 1
h3lib/include/vec3d.h 7

Fuzzer: fuzzerVertexes

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 21 10.0%
gold [1:9] 0 0.0%
yellow [10:29] 12 5.74%
greenyellow [30:49] 1 0.47%
lawngreen 50+ 175 83.7%
All colors 209 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
9 138 _faceIjkPentToCellBoundary call site: 00138 _hex2dToVec3
8 189 _faceIjkToCellBoundary call site: 00189 _hex2dToVec3
1 73 cellToVertex call site: 00073 _rotate60ccw
1 84 h3NeighborRotations call site: 00084 _h3Rotate60ccw
1 154 _hex2dToVec3 call site: 00154 _posAngleRads
1 172 _hex2dToVec3 call site: 00172 vec3ToLatLng

Runtime coverage analysis

Covered functions
63
Functions that are reachable but not covered
10
Reachable functions
73
Percentage of reachable functions covered
86.3%
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
apps/fuzzers/fuzzerVertexes.c 1
h3lib/lib/vertex.c 7
h3lib/lib/h3Index.c 15
h3lib/lib/baseCells.c 5
h3lib/include/coordijk.h 16
h3lib/lib/faceijk.c 8
h3lib/lib/algos.c 2
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 1
h3lib/include/vec3d.h 7

Fuzzer: fuzzerDirectedEdge

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 5 2.17%
gold [1:9] 2 0.86%
yellow [10:29] 17 7.39%
greenyellow [30:49] 6 2.60%
lawngreen 50+ 200 86.9%
All colors 230 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
2 38 gridDiskDistances call site: 00038 getNumCells
1 23 _h3Rotate60cw call site: 00023 _h3Rotate60ccw
1 44 _gridDiskDistancesInternal call site: 00044 _gridDiskDistancesInternal
1 183 _hex2dToVec3 call site: 00183 _posAngleRads

Runtime coverage analysis

Covered functions
75
Functions that are reachable but not covered
11
Reachable functions
86
Percentage of reachable functions covered
87.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.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerDirectedEdge.c 1
h3lib/lib/directedEdge.c 9
h3lib/lib/h3Index.c 16
h3lib/lib/baseCells.c 5
h3lib/lib/algos.c 7
h3lib/include/coordijk.h 16
h3lib/lib/latLng.c 2
h3lib/lib/mathExtensions.c 1
h3lib/lib/vertex.c 2
h3lib/lib/faceijk.c 8
h3lib/lib/vec2d.c 3
h3lib/include/vec3d.h 7

Fuzzer: fuzzerLocalIj

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 163 100.%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 0 0.0%
All colors 163 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
162 0 EP call site: 00000 testTwoIndexes

Runtime coverage analysis

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

Files reached

filename functions hit
apps/fuzzers/fuzzerLocalIj.c 2
h3lib/lib/localij.c 9
h3lib/lib/baseCells.c 4
h3lib/lib/h3Index.c 7
h3lib/include/coordijk.h 20
h3lib/include/mathExtensions.h 2

Fuzzer: fuzzerCellProperties

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 2 1.17%
gold [1:9] 1 0.58%
yellow [10:29] 15 8.82%
greenyellow [30:49] 3 1.76%
lawngreen 50+ 149 87.6%
All colors 170 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
1 88 cellToVertex call site: 00088 _rotate60ccw
1 99 h3NeighborRotations call site: 00099 _h3Rotate60ccw

Runtime coverage analysis

Covered functions
56
Functions that are reachable but not covered
3
Reachable functions
59
Percentage of reachable functions covered
94.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.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerCellProperties.c 1
h3lib/lib/h3Index.c 22
h3lib/lib/directedEdge.c 2
h3lib/lib/baseCells.c 5
h3lib/lib/vertex.c 5
h3lib/include/coordijk.h 15
h3lib/lib/faceijk.c 4
h3lib/lib/algos.c 2

Fuzzer: fuzzerCellToChildPos

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 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 24 100.%
All colors 24 100

Runtime coverage analysis

Covered functions
11
Functions that are reachable but not covered
1
Reachable functions
12
Percentage of reachable functions covered
91.67%
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
apps/fuzzers/fuzzerCellToChildPos.c 1
h3lib/lib/h3Index.c 8
h3lib/lib/baseCells.c 1
h3lib/lib/mathExtensions.c 1

Fuzzer: fuzzerDistances

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 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 4 36.3%
greenyellow [30:49] 1 9.09%
lawngreen 50+ 6 54.5%
All colors 11 100

Runtime coverage analysis

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

Files reached

filename functions hit
apps/fuzzers/fuzzerDistances.c 1
h3lib/lib/latLng.c 3

Fuzzer: fuzzerEdgeLength

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 1 0.57%
gold [1:9] 0 0.0%
yellow [10:29] 1 0.57%
greenyellow [30:49] 3 1.73%
lawngreen 50+ 168 97.1%
All colors 173 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
1 116 _hex2dToVec3 call site: 00116 _posAngleRads

Runtime coverage analysis

Covered functions
54
Functions that are reachable but not covered
8
Reachable functions
62
Percentage of reachable functions covered
87.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
apps/fuzzers/fuzzerEdgeLength.c 1
h3lib/lib/latLng.c 5
h3lib/lib/directedEdge.c 2
h3lib/lib/vertex.c 2
h3lib/lib/h3Index.c 7
h3lib/lib/baseCells.c 4
h3lib/include/coordijk.h 15
h3lib/lib/faceijk.c 8
h3lib/lib/vec2d.c 3
h3lib/include/vec3d.h 7

Fuzzer: fuzzerGridDisk

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 1 1.29%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 2 2.59%
lawngreen 50+ 74 96.1%
All colors 77 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
1 23 _h3Rotate60cw call site: 00023 _h3Rotate60ccw

Runtime coverage analysis

Covered functions
26
Functions that are reachable but not covered
2
Reachable functions
28
Percentage of reachable functions covered
92.86%
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
apps/fuzzers/fuzzerGridDisk.c 1
h3lib/lib/algos.c 12
h3lib/lib/latLng.c 1
h3lib/lib/mathExtensions.c 1
h3lib/lib/h3Index.c 6
h3lib/lib/baseCells.c 3
h3lib/include/coordijk.h 2

Fuzzer: fuzzerCellArea

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 1 0.61%
gold [1:9] 0 0.0%
yellow [10:29] 1 0.61%
greenyellow [30:49] 1 0.61%
lawngreen 50+ 160 98.1%
All colors 163 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
1 102 _hex2dToVec3 call site: 00102 _posAngleRads

Runtime coverage analysis

Covered functions
49
Functions that are reachable but not covered
8
Reachable functions
57
Percentage of reachable functions covered
85.96%
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
apps/fuzzers/fuzzerCellArea.c 1
h3lib/lib/area.c 5
h3lib/lib/h3Index.c 7
h3lib/lib/baseCells.c 1
h3lib/include/coordijk.h 15
h3lib/lib/faceijk.c 8
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 1
h3lib/include/vec3d.h 7
h3lib/include/adder.h 1

Fuzzer: fuzzerInternalAlgos

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 1 3.33%
gold [1:9] 0 0.0%
yellow [10:29] 3 10.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 26 86.6%
All colors 30 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
1 13 _h3Rotate60cw call site: 00013 _h3Rotate60ccw

Runtime coverage analysis

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

Files reached

filename functions hit
apps/fuzzers/fuzzerInternalAlgos.c 1
h3lib/lib/algos.c 2
h3lib/include/coordijk.h 2
h3lib/lib/h3Index.c 6
h3lib/lib/baseCells.c 3

Fuzzer: fuzzerHierarchy

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 0 0.0%
gold [1:9] 1 3.57%
yellow [10:29] 1 3.57%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 26 92.8%
All colors 28 100

Runtime coverage analysis

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

Files reached

filename functions hit
apps/fuzzers/fuzzerHierarchy.c 1
h3lib/lib/h3Index.c 9
h3lib/lib/baseCells.c 1
h3lib/lib/mathExtensions.c 1
h3lib/lib/iterators.c 6

Fuzzer: fuzzerInternalCoordIjk

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 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 28 100.%
All colors 28 100

Runtime coverage analysis

Covered functions
7
Functions that are reachable but not covered
2
Reachable functions
9
Percentage of reachable functions covered
77.78%
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
apps/fuzzers/fuzzerInternalCoordIjk.c 1
h3lib/include/coordijk.h 4
h3lib/include/mathExtensions.h 2

Fuzzer: fuzzerCellsToMultiPolygon

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 19 7.01%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 252 92.9%
All colors 271 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
6 250 cellsToMultiPolygon call site: 00250 createGlobeMultiPolygon
3 261 createMultiPolygon call site: 00261 destroySortableLoopSet
2 244 geoLoopAreaRads2 call site: 00244 destroySortableLoopSet
1 19 createArcSet call site: 00019 destroyArcSet
1 25 createArcSet call site: 00025 destroyArcSet
1 33 getDirectedEdgeDestination call site: 00033 _rotate60ccw
1 45 _h3Rotate60cw call site: 00045 _h3Rotate60ccw
1 68 cellsToMultiPolygon call site: 00068 destroyArcSet
1 186 _hex2dToVec3 call site: 00186 _posAngleRads
1 248 createSortableLoopSet call site: 00248 destroyArcSet
1 258 createMultiPolygon call site: 00258 destroySortablePolys

Runtime coverage analysis

Covered functions
96
Functions that are reachable but not covered
15
Reachable functions
111
Percentage of reachable functions covered
86.49%
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
apps/fuzzers/fuzzerCellsToMultiPolygon.c 1
h3lib/lib/cellsToMultiPoly.c 18
h3lib/include/cellsToMultiPoly.h 9
h3lib/lib/h3Index.c 16
h3lib/lib/baseCells.c 5
h3lib/lib/directedEdge.c 6
h3lib/lib/algos.c 5
h3lib/include/coordijk.h 16
h3lib/lib/vertex.c 2
h3lib/lib/faceijk.c 8
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 1
h3lib/include/vec3d.h 7
h3lib/lib/area.c 2
h3lib/include/adder.h 1

Fuzzer: fuzzerCellsToLinkedMultiPolygon

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 21 7.42%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 262 92.5%
All colors 283 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
6 251 cellsToMultiPolygon call site: 00251 createGlobeMultiPolygon
3 262 createMultiPolygon call site: 00262 destroySortableLoopSet
2 245 geoLoopAreaRads2 call site: 00245 destroySortableLoopSet
1 20 createArcSet call site: 00020 destroyArcSet
1 26 createArcSet call site: 00026 destroyArcSet
1 34 getDirectedEdgeDestination call site: 00034 _rotate60ccw
1 46 _h3Rotate60cw call site: 00046 _h3Rotate60ccw
1 69 cellsToMultiPolygon call site: 00069 destroyArcSet
1 187 _hex2dToVec3 call site: 00187 _posAngleRads
1 249 createSortableLoopSet call site: 00249 destroyArcSet
1 259 createMultiPolygon call site: 00259 destroySortablePolys
1 269 geoMultiPolygonToLinkedGeoPolygon call site: 00269 destroyLinkedMultiPolygon

Runtime coverage analysis

Covered functions
103
Functions that are reachable but not covered
15
Reachable functions
118
Percentage of reachable functions covered
87.29%
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
apps/fuzzers/fuzzerCellsToLinkedMultiPolygon.c 1
h3lib/lib/algos.c 6
h3lib/lib/cellsToMultiPoly.c 18
h3lib/include/cellsToMultiPoly.h 9
h3lib/lib/h3Index.c 16
h3lib/lib/baseCells.c 5
h3lib/lib/directedEdge.c 6
h3lib/include/coordijk.h 16
h3lib/lib/vertex.c 2
h3lib/lib/faceijk.c 8
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 1
h3lib/include/vec3d.h 7
h3lib/lib/area.c 2
h3lib/include/adder.h 1
h3lib/lib/linkedGeo.c 6

Fuzzer: fuzzerLatLngToCell

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 0 0.0%
gold [1:9] 1 1.19%
yellow [10:29] 2 2.38%
greenyellow [30:49] 2 2.38%
lawngreen 50+ 79 94.0%
All colors 84 100

Runtime coverage analysis

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

Files reached

filename functions hit
apps/fuzzers/fuzzerLatLngToCell.c 1
h3lib/lib/h3Index.c 8
h3lib/include/vec3d.h 8
h3lib/lib/faceijk.c 5
h3lib/lib/latLng.c 1
h3lib/include/coordijk.h 13
h3lib/lib/baseCells.c 4

Fuzzer: fuzzerCompact

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 0 0.0%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 35 100.%
All colors 35 100

Runtime coverage analysis

Covered functions
18
Functions that are reachable but not covered
2
Reachable functions
20
Percentage of reachable functions covered
90.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.
Function name source code lines source lines hit percentage hit

Files reached

filename functions hit
apps/fuzzers/fuzzerCompact.c 1
h3lib/lib/h3Index.c 9
h3lib/lib/baseCells.c 1
h3lib/lib/mathExtensions.c 1
h3lib/lib/iterators.c 6

Fuzzer: fuzzerPolygonToCells

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 26 8.93%
gold [1:9] 0 0.0%
yellow [10:29] 0 0.0%
greenyellow [30:49] 0 0.0%
lawngreen 50+ 265 91.0%
All colors 291 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
22 144 _faceIjkPentToCellBoundary call site: 00144 _faceIjkToCellBoundary
2 275 gridDiskDistances call site: 00275 getNumCells
1 263 h3NeighborRotations call site: 00263 _h3Rotate60ccw
1 281 _gridDiskDistancesInternal call site: 00281 _gridDiskDistancesInternal

Runtime coverage analysis

Covered functions
88
Functions that are reachable but not covered
16
Reachable functions
104
Percentage of reachable functions covered
84.62%
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
apps/fuzzers/fuzzerPolygonToCells.c 3
h3lib/lib/algos.c 9
h3lib/lib/polygon.c 3
h3lib/include/polygonAlgos.h 2
h3lib/lib/bbox.c 5
h3lib/lib/h3Index.c 16
h3lib/lib/baseCells.c 5
h3lib/include/coordijk.h 20
h3lib/lib/faceijk.c 13
h3lib/lib/vec2d.c 3
h3lib/lib/latLng.c 4
h3lib/include/vec3d.h 9
h3lib/lib/mathExtensions.c 1

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.

apps/fuzzers/fuzzerPolygonToCellsNoHoles.c

Dictionary

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


apps/fuzzers/fuzzerResolutions.c

Dictionary

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


apps/fuzzers/fuzzerConstructCell.c

Dictionary

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


apps/fuzzers/fuzzerIndexIO.c

Dictionary

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


apps/fuzzers/fuzzerPolygonToCellsExperimental.c

Dictionary

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


apps/fuzzers/fuzzerPolygonToCellsExperimentalNoHoles.c

Dictionary

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


apps/fuzzers/fuzzerCellToLatLng.c

Dictionary

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


apps/fuzzers/fuzzerVertexes.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=['_faceIjkPentToCellBoundary', '_faceIjkToCellBoundary', 'cellToVertex', 'h3NeighborRotations', '_hex2dToVec3']

apps/fuzzers/fuzzerDirectedEdge.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=['gridDiskDistances', '_h3Rotate60cw', '_gridDiskDistancesInternal', '_hex2dToVec3']

apps/fuzzers/fuzzerLocalIj.c

Dictionary

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


apps/fuzzers/fuzzerCellProperties.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=['cellToVertex', 'h3NeighborRotations']

apps/fuzzers/fuzzerCellToChildPos.c

Dictionary

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


apps/fuzzers/fuzzerDistances.c

Dictionary

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


apps/fuzzers/fuzzerEdgeLength.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=['_hex2dToVec3']

apps/fuzzers/fuzzerGridDisk.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=['_h3Rotate60cw']

apps/fuzzers/fuzzerCellArea.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=['_hex2dToVec3']

apps/fuzzers/fuzzerInternalAlgos.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=['_h3Rotate60cw']

apps/fuzzers/fuzzerHierarchy.c

Dictionary

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


apps/fuzzers/fuzzerInternalCoordIjk.c

Dictionary

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


apps/fuzzers/fuzzerCellsToMultiPolygon.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=['cellsToMultiPolygon', 'createMultiPolygon', 'geoLoopAreaRads2', 'createArcSet', 'getDirectedEdgeDestination', '_h3Rotate60cw', '_hex2dToVec3', 'createSortableLoopSet']

apps/fuzzers/fuzzerCellsToLinkedMultiPolygon.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=['cellsToMultiPolygon', 'createMultiPolygon', 'geoLoopAreaRads2', 'createArcSet', 'getDirectedEdgeDestination', '_h3Rotate60cw', '_hex2dToVec3', 'createSortableLoopSet']

apps/fuzzers/fuzzerLatLngToCell.c

Dictionary

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


apps/fuzzers/fuzzerCompact.c

Dictionary

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


apps/fuzzers/fuzzerPolygonToCells.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=['_faceIjkPentToCellBoundary', 'gridDiskDistances', 'h3NeighborRotations', '_gridDiskDistancesInternal']

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/h3/src/apps/fuzzers/fuzzerCellsToMultiPolygon.c ['fuzzerCellsToMultiPolygon'] ['fuzzerCellsToMultiPolygon']
/src/h3/src/apps/fuzzers/fuzzerVertexes.c ['fuzzerVertexes'] ['fuzzerVertexes']
/src/h3/src/h3lib/include/cellsToMultiPoly.h ['fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon'] ['fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/h3lib/lib/vertex.c ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerEdgeLength', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon'] ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerEdgeLength', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/apps/fuzzers/fuzzerGridDisk.c ['fuzzerGridDisk'] ['fuzzerGridDisk']
/src/h3/src/h3lib/lib/iterators.c ['fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerHierarchy', 'fuzzerCompact'] ['fuzzerHierarchy', 'fuzzerCompact']
/src/h3/src/h3lib/lib/vec2d.c ['fuzzerPolygonToCellsNoHoles', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells'] ['fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells']
/src/h3/src/apps/fuzzers/fuzzerResolutions.c ['fuzzerResolutions'] ['fuzzerResolutions']
/src/h3/src/apps/fuzzers/fuzzerInternalCoordIjk.c ['fuzzerInternalCoordIjk'] ['fuzzerInternalCoordIjk']
/src/h3/src/apps/fuzzers/fuzzerDirectedEdge.c ['fuzzerDirectedEdge'] ['fuzzerDirectedEdge']
/src/h3/src/h3lib/lib/latLng.c ['fuzzerPolygonToCellsNoHoles', 'fuzzerResolutions', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerDistances', 'fuzzerEdgeLength', 'fuzzerGridDisk', 'fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerPolygonToCells'] ['fuzzerResolutions', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerDistances', 'fuzzerEdgeLength', 'fuzzerGridDisk', 'fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerPolygonToCells']
/src/h3/src/apps/fuzzers/fuzzerPolygonToCellsNoHoles.c ['fuzzerPolygonToCellsNoHoles'] []
/src/h3/src/apps/fuzzers/fuzzerLatLngToCell.c ['fuzzerLatLngToCell'] ['fuzzerLatLngToCell']
/src/h3/src/h3lib/lib/polygon.c ['fuzzerPolygonToCellsNoHoles', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerPolygonToCells'] ['fuzzerPolygonToCells']
/src/h3/src/h3lib/lib/polyfill.c ['fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles'] []
/src/h3/src/apps/fuzzers/fuzzerCellProperties.c ['fuzzerCellProperties'] ['fuzzerCellProperties']
/src/h3/src/h3lib/lib/algos.c ['fuzzerPolygonToCellsNoHoles', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerGridDisk', 'fuzzerInternalAlgos', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells'] ['fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerGridDisk', 'fuzzerInternalAlgos', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerPolygonToCells']
/src/h3/src/apps/fuzzers/fuzzerPolygonToCellsExperimentalNoHoles.c ['fuzzerPolygonToCellsExperimentalNoHoles'] []
/src/h3/src/h3lib/include/adder.h ['fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon'] ['fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/apps/fuzzers/fuzzerCellToLatLng.c ['fuzzerCellToLatLng'] ['fuzzerCellToLatLng']
/src/h3/src/h3lib/lib/bbox.c ['fuzzerPolygonToCellsNoHoles', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerPolygonToCells'] ['fuzzerPolygonToCells']
/src/h3/src/h3lib/lib/directedEdge.c ['fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerEdgeLength', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon'] ['fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerEdgeLength', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/h3lib/lib/baseCells.c ['fuzzerPolygonToCellsNoHoles', 'fuzzerResolutions', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerLocalIj', 'fuzzerCellProperties', 'fuzzerCellToChildPos', 'fuzzerEdgeLength', 'fuzzerGridDisk', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerHierarchy', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerCompact', 'fuzzerPolygonToCells'] ['fuzzerResolutions', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerCellToChildPos', 'fuzzerEdgeLength', 'fuzzerGridDisk', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerHierarchy', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerCompact', 'fuzzerPolygonToCells']
/src/h3/src/apps/fuzzers/fuzzerDistances.c ['fuzzerDistances'] ['fuzzerDistances']
/src/h3/src/apps/fuzzers/fuzzerCellArea.c ['fuzzerCellArea'] ['fuzzerCellArea']
/src/h3/src/apps/fuzzers/fuzzerHierarchy.c ['fuzzerHierarchy'] ['fuzzerHierarchy']
/src/h3/src/h3lib/include/vec3d.h ['fuzzerPolygonToCellsNoHoles', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerPolygonToCells'] ['fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerEdgeLength', 'fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerPolygonToCells']
/src/h3/src/h3lib/lib/localij.c ['fuzzerLocalIj'] []
/src/h3/src/h3lib/lib/h3Index.c ['fuzzerPolygonToCellsNoHoles', 'fuzzerResolutions', 'fuzzerConstructCell', 'fuzzerIndexIO', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerLocalIj', 'fuzzerCellProperties', 'fuzzerCellToChildPos', 'fuzzerEdgeLength', 'fuzzerGridDisk', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerHierarchy', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerCompact', 'fuzzerPolygonToCells'] ['fuzzerResolutions', 'fuzzerConstructCell', 'fuzzerIndexIO', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerCellToChildPos', 'fuzzerEdgeLength', 'fuzzerGridDisk', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerHierarchy', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerCompact', 'fuzzerPolygonToCells']
/src/h3/src/apps/fuzzers/fuzzerPolygonToCellsExperimental.c ['fuzzerPolygonToCellsExperimental'] []
/src/h3/src/h3lib/lib/area.c ['fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon'] ['fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/apps/fuzzers/fuzzerPolygonToCells.c ['fuzzerPolygonToCells'] ['fuzzerPolygonToCells']
/src/h3/src/apps/fuzzers/fuzzerConstructCell.c ['fuzzerConstructCell'] ['fuzzerConstructCell']
/src/h3/src/h3lib/lib/linkedGeo.c ['fuzzerCellsToLinkedMultiPolygon'] ['fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/h3lib/include/coordijk.h ['fuzzerPolygonToCellsNoHoles', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerLocalIj', 'fuzzerCellProperties', 'fuzzerEdgeLength', 'fuzzerGridDisk', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerInternalCoordIjk', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerPolygonToCells'] ['fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerEdgeLength', 'fuzzerGridDisk', 'fuzzerCellArea', 'fuzzerInternalAlgos', 'fuzzerInternalCoordIjk', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerPolygonToCells']
/src/h3/src/apps/fuzzers/fuzzerEdgeLength.c ['fuzzerEdgeLength'] ['fuzzerEdgeLength']
/src/h3/src/h3lib/include/polygonAlgos.h ['fuzzerPolygonToCellsNoHoles', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerPolygonToCells'] ['fuzzerPolygonToCells']
/src/h3/src/h3lib/include/mathExtensions.h ['fuzzerLocalIj', 'fuzzerInternalCoordIjk'] ['fuzzerInternalCoordIjk']
/src/h3/src/apps/fuzzers/fuzzerCompact.c ['fuzzerCompact'] ['fuzzerCompact']
/src/h3/src/h3lib/lib/mathExtensions.c ['fuzzerPolygonToCellsNoHoles', 'fuzzerResolutions', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerDirectedEdge', 'fuzzerCellToChildPos', 'fuzzerGridDisk', 'fuzzerHierarchy', 'fuzzerCompact', 'fuzzerPolygonToCells'] ['fuzzerResolutions', 'fuzzerCellToChildPos', 'fuzzerGridDisk', 'fuzzerHierarchy', 'fuzzerCompact']
/src/h3/src/apps/fuzzers/fuzzerLocalIj.c ['fuzzerLocalIj'] []
/src/h3/src/apps/fuzzers/fuzzerCellToChildPos.c ['fuzzerCellToChildPos'] ['fuzzerCellToChildPos']
/src/h3/src/apps/fuzzers/fuzzerCellsToLinkedMultiPolygon.c ['fuzzerCellsToLinkedMultiPolygon'] ['fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/apps/fuzzers/fuzzerIndexIO.c ['fuzzerIndexIO'] ['fuzzerIndexIO']
/src/h3/src/h3lib/lib/cellsToMultiPoly.c ['fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon'] ['fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon']
/src/h3/src/h3lib/lib/faceijk.c ['fuzzerPolygonToCellsNoHoles', 'fuzzerPolygonToCellsExperimental', 'fuzzerPolygonToCellsExperimentalNoHoles', 'fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerEdgeLength', 'fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerPolygonToCells'] ['fuzzerCellToLatLng', 'fuzzerVertexes', 'fuzzerDirectedEdge', 'fuzzerCellProperties', 'fuzzerEdgeLength', 'fuzzerCellArea', 'fuzzerCellsToMultiPolygon', 'fuzzerCellsToLinkedMultiPolygon', 'fuzzerLatLngToCell', 'fuzzerPolygonToCells']
/src/h3/src/apps/fuzzers/fuzzerInternalAlgos.c ['fuzzerInternalAlgos'] ['fuzzerInternalAlgos']

Directories in report

Directory
/src/h3/src/apps/fuzzers/
/src/h3/src/h3lib/include/
/src/h3/src/h3lib/lib/

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
fuzzerPolygonToCellsNoHoles fuzzerLogFile-0-3K99tLMCO5.data fuzzerLogFile-0-3K99tLMCO5.data.yaml fuzzerPolygonToCellsNoHoles.covreport
fuzzerResolutions fuzzerLogFile-0-qffgrqksOB.data fuzzerLogFile-0-qffgrqksOB.data.yaml fuzzerResolutions.covreport
fuzzerConstructCell fuzzerLogFile-0-fmmHIYhrt2.data fuzzerLogFile-0-fmmHIYhrt2.data.yaml fuzzerConstructCell.covreport
fuzzerIndexIO fuzzerLogFile-0-tLiNKywiPO.data fuzzerLogFile-0-tLiNKywiPO.data.yaml fuzzerIndexIO.covreport
fuzzerPolygonToCellsExperimental fuzzerLogFile-0-7fDHoZASWA.data fuzzerLogFile-0-7fDHoZASWA.data.yaml fuzzerPolygonToCellsExperimental.covreport
fuzzerPolygonToCellsExperimentalNoHoles fuzzerLogFile-0-NVLgOwfQmU.data fuzzerLogFile-0-NVLgOwfQmU.data.yaml fuzzerPolygonToCellsExperimentalNoHoles.covreport
fuzzerCellToLatLng fuzzerLogFile-0-0LxvSBEUJo.data fuzzerLogFile-0-0LxvSBEUJo.data.yaml fuzzerCellToLatLng.covreport
fuzzerVertexes fuzzerLogFile-0-5lFLebBnIU.data fuzzerLogFile-0-5lFLebBnIU.data.yaml fuzzerVertexes.covreport
fuzzerDirectedEdge fuzzerLogFile-0-IvO4cv50Mf.data fuzzerLogFile-0-IvO4cv50Mf.data.yaml fuzzerDirectedEdge.covreport
fuzzerLocalIj fuzzerLogFile-0-ijn6dEfO8E.data fuzzerLogFile-0-ijn6dEfO8E.data.yaml fuzzerLocalIj.covreport
fuzzerCellProperties fuzzerLogFile-0-4BfUYGtbdC.data fuzzerLogFile-0-4BfUYGtbdC.data.yaml fuzzerCellProperties.covreport
fuzzerCellToChildPos fuzzerLogFile-0-ji3WGDOZHX.data fuzzerLogFile-0-ji3WGDOZHX.data.yaml fuzzerCellToChildPos.covreport
fuzzerDistances fuzzerLogFile-0-vde1Vqg22R.data fuzzerLogFile-0-vde1Vqg22R.data.yaml fuzzerDistances.covreport
fuzzerEdgeLength fuzzerLogFile-0-s037BPjx64.data fuzzerLogFile-0-s037BPjx64.data.yaml fuzzerEdgeLength.covreport
fuzzerGridDisk fuzzerLogFile-0-j8ghpVjVJK.data fuzzerLogFile-0-j8ghpVjVJK.data.yaml fuzzerGridDisk.covreport
fuzzerCellArea fuzzerLogFile-0-LACPeGD6aA.data fuzzerLogFile-0-LACPeGD6aA.data.yaml fuzzerCellArea.covreport
fuzzerInternalAlgos fuzzerLogFile-0-HUlCbjXxA2.data fuzzerLogFile-0-HUlCbjXxA2.data.yaml fuzzerInternalAlgos.covreport
fuzzerHierarchy fuzzerLogFile-0-MDFHOMmC41.data fuzzerLogFile-0-MDFHOMmC41.data.yaml fuzzerHierarchy.covreport
fuzzerInternalCoordIjk fuzzerLogFile-0-2VWHOnKXWh.data fuzzerLogFile-0-2VWHOnKXWh.data.yaml fuzzerInternalCoordIjk.covreport
fuzzerCellsToMultiPolygon fuzzerLogFile-0-TwS5HVnB7t.data fuzzerLogFile-0-TwS5HVnB7t.data.yaml fuzzerCellsToMultiPolygon.covreport
fuzzerCellsToLinkedMultiPolygon fuzzerLogFile-0-9xw8YqWhmy.data fuzzerLogFile-0-9xw8YqWhmy.data.yaml fuzzerCellsToLinkedMultiPolygon.covreport
fuzzerLatLngToCell fuzzerLogFile-0-jhTMHCzOKg.data fuzzerLogFile-0-jhTMHCzOKg.data.yaml fuzzerLatLngToCell.covreport
fuzzerCompact fuzzerLogFile-0-GdekpQu7qP.data fuzzerLogFile-0-GdekpQu7qP.data.yaml fuzzerCompact.covreport
fuzzerPolygonToCells fuzzerLogFile-0-XqmHQBNWV1.data fuzzerLogFile-0-XqmHQBNWV1.data.yaml fuzzerPolygonToCells.covreport