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

Fuzz blockers

The followings are the branches where fuzzer fails to bypass.

Unique non-covered Complexity Unique Reachable Complexities Unique Reachable Functions All non-covered Complexity All Reachable Complexity Function Name Function Callsite Blocked Branch
0 0 None 0 36 _hex2dToGeo call site: 00106 /src/h3/src/h3lib/lib/faceijk.c:464
0 0 None 0 3 _geoAzDistanceRads call site: 00110 /src/h3/src/h3lib/lib/latLng.c:211
0 0 None 0 0 _isBaseCellPentagon call site: 00010 /src/h3/src/h3lib/lib/baseCells.c:825
0 0 None 0 0 _ijkNormalize call site: 00023 /src/h3/src/h3lib/lib/coordijk.c:273
0 0 None 0 0 _hex2dToGeo call site: 00101 /src/h3/src/h3lib/lib/faceijk.c:441
0 0 None 0 0 _geoAzDistanceRads call site: 00109 /src/h3/src/h3lib/lib/latLng.c:201
0 0 None 0 0 _geoAzDistanceRads call site: 00114 /src/h3/src/h3lib/lib/latLng.c:234
0 0 None 0 0 _geoAzDistanceRads call site: 00114 /src/h3/src/h3lib/lib/latLng.c:238
0 0 None 0 0 normalizeMultiPolygon call site: 00173 /src/h3/src/h3lib/lib/linkedGeo.c:296
0 0 None 0 0 removeVertexNode call site: 00145 /src/h3/src/h3lib/lib/vertexGraph.c:155

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 cellsToLinkedMultiPolygon [function] [call site] 00001
2 h3SetToVertexGraph [function] [call site] 00002
3 initVertexGraph [function] [call site] 00003
4 calloc [call site] 00004
4 __assert_fail [call site] 00005
3 initVertexGraph [function] [call site] 00006
3 cellToBoundary [function] [call site] 00007
4 _h3ToFaceIjk [function] [call site] 00008
5 __assert_fail [call site] 00009
5 _isBaseCellPentagon [function] [call site] 00010
5 _h3LeadingNonZeroDigit [function] [call site] 00011
5 _h3Rotate60cw [function] [call site] 00012
6 _rotate60cw [function] [call site] 00013
5 _h3ToFaceIjkWithInitializedFijk [function] [call site] 00014
6 _isBaseCellPentagon [function] [call site] 00015
6 isResolutionClassIII [function] [call site] 00016
6 _neighbor [function] [call site] 00031
7 _ijkNormalize [function] [call site] 00033
5 isResolutionClassIII [function] [call site] 00034
5 _downAp7r [function] [call site] 00035
5 _isBaseCellPentagon [function] [call site] 00036
5 _h3LeadingNonZeroDigit [function] [call site] 00037
5 _adjustOverageClassII [function] [call site] 00038
5 _isBaseCellPentagon [function] [call site] 00059
5 _adjustOverageClassII [function] [call site] 00060
5 _upAp7r [function] [call site] 00061
6 lroundl [call site] 00062
6 lroundl [call site] 00063
6 _ijkNormalize [function] [call site] 00064
4 isPentagon [function] [call site] 00065
5 _isBaseCellPentagon [function] [call site] 00066
5 _h3LeadingNonZeroDigit [function] [call site] 00067
4 _faceIjkPentToCellBoundary [function] [call site] 00068
5 _faceIjkPentToVerts [function] [call site] 00069
6 isResolutionClassIII [function] [call site] 00070
6 isResolutionClassIII [function] [call site] 00085
6 _downAp7r [function] [call site] 00086
6 _ijkNormalize [function] [call site] 00088
5 _adjustPentVertOverage [function] [call site] 00089
6 _adjustOverageClassII [function] [call site] 00090
5 isResolutionClassIII [function] [call site] 00091
5 _ijkToHex2d [function] [call site] 00092
5 _ijkRotate60ccw [function] [call site] 00093
5 _ijkScale [function] [call site] 00094
5 _ijkNormalize [function] [call site] 00096
5 _ijkToHex2d [function] [call site] 00097
5 __assert_fail [call site] 00098
5 _v2dIntersect [function] [call site] 00099
5 _hex2dToGeo [function] [call site] 00100
6 _v2dMag [function] [call site] 00101
7 sqrt [call site] 00102
6 atan2 [call site] 00103
6 isResolutionClassIII [function] [call site] 00104
6 atan [call site] 00105
6 isResolutionClassIII [function] [call site] 00106
6 _posAngleRads [function] [call site] 00107
6 _posAngleRads [function] [call site] 00108
6 _geoAzDistanceRads [function] [call site] 00109
7 _posAngleRads [function] [call site] 00110
7 constrainLng [function] [call site] 00111
7 sin [call site] 00112
7 cos [call site] 00113
7 asin [call site] 00114
7 sin [call site] 00115
7 cos [call site] 00116
7 cos [call site] 00117
7 atan2 [call site] 00118
7 constrainLng [function] [call site] 00119
5 _ijkToHex2d [function] [call site] 00120
5 _hex2dToGeo [function] [call site] 00121
4 _faceIjkToCellBoundary [function] [call site] 00122
5 _faceIjkToVerts [function] [call site] 00123
6 isResolutionClassIII [function] [call site] 00124
6 _downAp3r [function] [call site] 00126
6 isResolutionClassIII [function] [call site] 00127
6 _downAp7r [function] [call site] 00128
6 _ijkNormalize [function] [call site] 00130
5 _adjustOverageClassII [function] [call site] 00131
5 isResolutionClassIII [function] [call site] 00132
5 _ijkToHex2d [function] [call site] 00133
5 _ijkToHex2d [function] [call site] 00134
5 __assert_fail [call site] 00135
5 _v2dIntersect [function] [call site] 00136
5 _v2dAlmostEquals [function] [call site] 00137
5 _v2dAlmostEquals [function] [call site] 00138
5 _hex2dToGeo [function] [call site] 00139
5 _ijkToHex2d [function] [call site] 00140
5 _hex2dToGeo [function] [call site] 00141
3 destroyVertexGraph [function] [call site] 00142
4 firstVertexNode [function] [call site] 00143
4 removeVertexNode [function] [call site] 00144
5 _hashVertex [function] [call site] 00145
6 pow [call site] 00146
3 findNodeForEdge [function] [call site] 00147
4 _hashVertex [function] [call site] 00148
4 geoAlmostEqual [function] [call site] 00149
5 geoAlmostEqualThreshold [function] [call site] 00150
4 geoAlmostEqual [function] [call site] 00151
3 removeVertexNode [function] [call site] 00152
3 addVertexNode [function] [call site] 00153
4 __assert_fail [call site] 00154
4 _initVertexNode [function] [call site] 00155
4 _hashVertex [function] [call site] 00156
4 geoAlmostEqual [function] [call site] 00157
4 geoAlmostEqual [function] [call site] 00158
2 _vertexGraphToLinkedGeo [function] [call site] 00159
3 firstVertexNode [function] [call site] 00160
3 addNewLinkedLoop [function] [call site] 00161
4 calloc [call site] 00162
4 __assert_fail [call site] 00163
4 addLinkedLoop [function] [call site] 00164
5 __assert_fail [call site] 00165
3 addLinkedCoord [function] [call site] 00166
4 __assert_fail [call site] 00167
4 __assert_fail [call site] 00168
3 removeVertexNode [function] [call site] 00169
3 findNodeForVertex [function] [call site] 00170
4 findNodeForEdge [function] [call site] 00171
2 destroyVertexGraph [function] [call site] 00172
2 normalizeMultiPolygon [function] [call site] 00173
3 countLinkedLoops [function] [call site] 00174
3 __assert_fail [call site] 00175
3 __assert_fail [call site] 00176
3 isClockwiseLinkedGeoLoop [function] [call site] 00177
4 isClockwiseNormalizedLinkedGeoLoop [function] [call site] 00178
5 isClockwiseNormalizedLinkedGeoLoop [function] [call site] 00179
3 addNewLinkedPolygon [function] [call site] 00180
4 __assert_fail [call site] 00181
4 calloc [call site] 00182
4 __assert_fail [call site] 00183
3 addLinkedLoop [function] [call site] 00184
3 bboxFromLinkedGeoLoop [function] [call site] 00185
3 findPolygonForHole [function] [call site] 00186
4 __assert_fail [call site] 00187
4 __assert_fail [call site] 00188
4 pointInsideLinkedGeoLoop [function] [call site] 00189
5 bboxContains [function] [call site] 00190
6 bboxIsTransmeridian [function] [call site] 00191
5 bboxIsTransmeridian [function] [call site] 00192
4 findDeepestContainer [function] [call site] 00193
5 countContainers [function] [call site] 00194
6 pointInsideLinkedGeoLoop [function] [call site] 00195
3 addLinkedLoop [function] [call site] 00196
3 destroyLinkedGeoLoop [function] [call site] 00197
2 destroyLinkedMultiPolygon [function] [call site] 00198
3 destroyLinkedGeoLoop [function] [call site] 00199
1 destroyLinkedMultiPolygon [function] [call site] 00200