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

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
34 310 _cairo_array_index_const call site: {node_id} cairo_scaled_font_text_to_glyphs_internal_uncached
33 57 cairo_scaled_font_text_to_glyphs call site: {node_id} cairo_scaled_font_text_to_glyphs_internal_cached
22 118 _cairo_hash_table_create call site: {node_id} _cairo_cache_insert
19 169 cairo_list_add_tail call site: {node_id} _cairo_scaled_font_free_last_glyph
17 243 cairo_surface_destroy call site: {node_id} cairo_device_destroy
12 98 cairo_list_is_empty call site: {node_id} _cairo_cache_init
12 295 _cairo_array_append_multiple call site: {node_id} _cairo_scaled_font_thaw_cache
8 141 _cairo_hash_table_remove call site: {node_id} _cairo_hash_table_manage
5 92 _cairo_hash_table_lookup call site: {node_id} _cairo_scaled_font_allocate_glyph
5 158 _cairo_hash_table_insert call site: {node_id} cairo_list_add_tail
5 352 cairo_text_extents call site: {node_id} cairo_show_text_glyphs
4 230 cairo_region_destroy call site: {node_id} _cairo_region_fini

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 fuzzer_get_tmpfile [function] [call site] 00001
2 strdup [call site] 00002
2 perror [call site] 00003
2 abort [call site] 00004
2 mkstemp [call site] 00005
2 perror [call site] 00006
2 abort [call site] 00007
2 fdopen [call site] 00008
2 perror [call site] 00009
2 close [call site] 00010
2 abort [call site] 00011
2 fwrite [call site] 00012
2 close [call site] 00013
2 fprintf [call site] 00014
2 abort [call site] 00015
2 fclose [call site] 00016
1 cairo_image_surface_create_from_png [call site] 00017
1 cairo_surface_status [function] [call site] 00018
1 fuzzer_release_tmpfile [function] [call site] 00019
2 unlink [call site] 00020
2 perror [call site] 00021
2 free [call site] 00022
1 calloc [call site] 00023
1 memcpy [call site] 00024
1 cairo_create [call site] 00025
1 cairo_text_extents [function] [call site] 00026
2 unlikely [call site] 00027
2 cairo_get_scaled_font [call site] 00028
2 unlikely [call site] 00029
2 _cairo_set_error [function] [call site] 00030
3 _cairo_status_set_error [call site] 00031
3 _cairo_error [function] [call site] 00032
4 assert [call site] 00033
4 _cairo_status_is_error [call site] 00034
2 cairo_get_current_point [function] [call site] 00035
2 cairo_scaled_font_text_to_glyphs [function] [call site] 00036
3 unlikely [call site] 00037
3 _cairo_error [function] [call site] 00038
3 _cairo_error [function] [call site] 00039
3 strlen [call site] 00040
3 _cairo_error [function] [call site] 00041
3 _cairo_utf8_to_ucs4 [function] [call site] 00042
4 _utf8_get_char_extended [function] [call site] 00043
5 UTF8_LENGTH [call site] 00044
4 UNICODE_VALID [call site] 00045
4 _cairo_error [function] [call site] 00046
4 _cairo_error [function] [call site] 00047
4 UTF8_NEXT_CHAR [call site] 00048
4 _cairo_malloc_ab [function] [call site] 00049
5 _cairo_mul_size_t_overflow [call site] 00050
5 _cairo_malloc [call site] 00051
4 _cairo_error [function] [call site] 00052
4 _utf8_get_char [function] [call site] 00053
5 UTF8_COMPUTE [call site] 00054
5 UTF8_GET [call site] 00055
4 UTF8_NEXT_CHAR [call site] 00056
3 unlikely [call site] 00057
3 _cairo_scaled_font_freeze_cache [function] [call site] 00058
4 assert [call site] 00059
4 CAIRO_MUTEX_LOCK [call site] 00060
3 _cairo_error [function] [call site] 00061
3 _cairo_error [function] [call site] 00062
3 _cairo_error [function] [call site] 00063
3 _cairo_error [function] [call site] 00064
3 _cairo_validate_text_clusters [function] [call site] 00065
4 _cairo_utf8_to_ucs4 [function] [call site] 00066
4 unlikely [call site] 00067
4 _cairo_error [function] [call site] 00068
4 _cairo_error [function] [call site] 00069
3 cairo_glyph_allocate [function] [call site] 00070
4 _cairo_malloc_ab [function] [call site] 00071
3 unlikely [call site] 00072
3 _cairo_error [function] [call site] 00073
3 cairo_text_cluster_allocate [function] [call site] 00074
4 _cairo_malloc_ab [function] [call site] 00075
3 unlikely [call site] 00076
3 _cairo_error [function] [call site] 00077
3 cairo_scaled_font_text_to_glyphs_internal_cached [function] [call site] 00078
4 _cairo_utf8_get_char_validated [function] [call site] 00079
5 UTF8_COMPUTE [call site] 00080
5 UTF8_GET [call site] 00081
4 ARRAY_LENGTH [call site] 00082
4 _cairo_scaled_glyph_lookup [function] [call site] 00083
5 unlikely [call site] 00084
5 assert [call site] 00085
5 CAIRO_MUTEX_IS_LOCKED [call site] 00086
5 assert [call site] 00087
5 CAIRO_INJECT_FAULT [call site] 00088
5 _cairo_error [function] [call site] 00089
5 _cairo_hash_table_lookup [function] [call site] 00090
6 ENTRY_IS_LIVE [call site] 00091
6 ENTRY_IS_FREE [call site] 00092
6 ENTRY_IS_LIVE [call site] 00093
6 ENTRY_IS_FREE [call site] 00094
5 _cairo_scaled_font_allocate_glyph [function] [call site] 00095
6 assert [call site] 00096
6 cairo_list_is_empty [function] [call site] 00097
7 cairo_list_validate [function] [call site] 00098
8 cairo_list_foreach [call site] 00099
8 _cairo_list_validate [function] [call site] 00100
9 assert [call site] 00101
9 assert [call site] 00102
6 cairo_list_last_entry [call site] 00103
6 _cairo_calloc [call site] 00104
6 unlikely [call site] 00105
6 _cairo_error [function] [call site] 00106
6 CAIRO_MUTEX_LOCK [call site] 00107
6 unlikely [call site] 00108
6 _cairo_cache_init [function] [call site] 00109
7 _cairo_hash_table_create [function] [call site] 00110
8 _cairo_calloc [call site] 00111
8 unlikely [call site] 00112
8 _cairo_error_throw [call site] 00113
8 memset [call site] 00114
8 _cairo_calloc_ab [function] [call site] 00115
9 _cairo_mul_size_t_overflow [call site] 00116
9 _cairo_calloc [call site] 00117
8 unlikely [call site] 00118
8 _cairo_error_throw [call site] 00119
8 free [call site] 00120
7 unlikely [call site] 00121
7 _cairo_error [function] [call site] 00122
6 unlikely [call site] 00123
6 CAIRO_MUTEX_UNLOCK [call site] 00124
6 free [call site] 00125
6 _cairo_cache_freeze [function] [call site] 00126
7 assert [call site] 00127
6 _cairo_cache_insert [function] [call site] 00128
7 _cairo_cache_shrink_to_accommodate [function] [call site] 00129
8 _cairo_cache_remove_random [function] [call site] 00130
9 _cairo_hash_table_random_entry [function] [call site] 00131
10 assert [call site] 00132
10 rand [call site] 00133
10 ENTRY_IS_LIVE [call site] 00134
10 predicate [call site] 00135
10 ENTRY_IS_LIVE [call site] 00136
10 predicate [call site] 00137
9 unlikely [call site] 00138
9 _cairo_cache_remove [function] [call site] 00139
10 _cairo_hash_table_remove [function] [call site] 00140
11 _cairo_hash_table_lookup_exact_key [function] [call site] 00141
11 _cairo_hash_table_manage [function] [call site] 00142
12 assert [call site] 00143
12 ARRAY_LENGTH [call site] 00144
12 _cairo_calloc_ab [function] [call site] 00145
12 unlikely [call site] 00146
12 _cairo_error [function] [call site] 00147
12 ENTRY_IS_LIVE [call site] 00148
12 _cairo_hash_table_lookup_unique_key [function] [call site] 00149
13 ENTRY_IS_LIVE [call site] 00150
13 ENTRY_IS_LIVE [call site] 00151
12 free [call site] 00152
7 _cairo_hash_table_insert [function] [call site] 00153
8 assert [call site] 00154
8 _cairo_hash_table_manage [function] [call site] 00155
8 unlikely [call site] 00156
8 _cairo_hash_table_lookup_unique_key [function] [call site] 00157
8 ENTRY_IS_FREE [call site] 00158
7 unlikely [call site] 00159
6 CAIRO_MUTEX_UNLOCK [call site] 00160
6 unlikely [call site] 00161
6 free [call site] 00162
6 cairo_list_add_tail [function] [call site] 00163
7 cairo_list_validate [function] [call site] 00164
7 cairo_list_validate_is_empty [function] [call site] 00165
8 assert [call site] 00166
8 cairo_list_is_empty [function] [call site] 00167
7 __cairo_list_add [function] [call site] 00168
7 cairo_list_validate [function] [call site] 00169
5 unlikely [call site] 00170
5 memset [call site] 00171
5 _cairo_scaled_glyph_set_index [call site] 00172
5 cairo_list_init [function] [call site] 00173
5 unlikely [call site] 00174
5 _cairo_scaled_font_free_last_glyph [function] [call site] 00175
6 assert [call site] 00176
6 assert [call site] 00177
6 cairo_list_is_empty [function] [call site] 00178
6 cairo_list_last_entry [call site] 00179
6 assert [call site] 00180
6 _cairo_scaled_glyph_fini [function] [call site] 00181
7 cairo_list_is_empty [function] [call site] 00182
7 cairo_list_first_entry [call site] 00183
7 _cairo_image_scaled_glyph_fini [function] [call site] 00184
8 CAIRO_MUTEX_LOCK [call site] 00185
8 pixman_glyph_cache_remove [call site] 00186
8 CAIRO_MUTEX_UNLOCK [call site] 00187
7 cairo_surface_destroy [function] [call site] 00188
8 CAIRO_REFERENCE_COUNT_IS_INVALID [call site] 00189
8 assert [call site] 00190
8 CAIRO_REFERENCE_COUNT_HAS_REFERENCE [call site] 00191
8 _cairo_reference_count_dec_and_test [call site] 00192
8 assert [call site] 00193
8 _cairo_surface_finish_snapshots [function] [call site] 00194
9 _cairo_surface_flush [function] [call site] 00195
10 _cairo_surface_detach_snapshots [function] [call site] 00196
11 _cairo_surface_has_snapshots [function] [call site] 00197
12 cairo_list_is_empty [function] [call site] 00198
11 _cairo_surface_detach_snapshot [function] [call site] 00199
12 assert [call site] 00200
12 cairo_list_del [function] [call site] 00201
13 _cairo_list_del [function] [call site] 00202
14 __cairo_list_del [function] [call site] 00203
13 cairo_list_init [function] [call site] 00204
12 cairo_surface_destroy [function] [call site] 00205
11 cairo_list_first_entry [call site] 00206
10 _cairo_surface_detach_snapshot [function] [call site] 00207
10 _cairo_surface_detach_mime_data [function] [call site] 00208
11 _cairo_surface_has_mime_data [function] [call site] 00209
11 _cairo_user_data_array_fini [function] [call site] 00210
12 _cairo_array_index [function] [call site] 00211
13 assert [call site] 00212
12 _cairo_array_fini [function] [call site] 00213
13 free [call site] 00214
11 _cairo_user_data_array_init [function] [call site] 00215
12 _cairo_array_init [function] [call site] 00216
10 __cairo_surface_flush [function] [call site] 00217
8 CAIRO_REFERENCE_COUNT_GET_VALUE [call site] 00218
8 _cairo_surface_finish [function] [call site] 00219
9 unlikely [call site] 00220
9 _cairo_surface_set_error [function] [call site] 00221
10 _cairo_status_set_error [call site] 00222
10 _cairo_error [function] [call site] 00223
9 assert [call site] 00224
9 assert [call site] 00225
9 _cairo_surface_has_snapshots [function] [call site] 00226
8 _cairo_damage_destroy [function] [call site] 00227
9 free [call site] 00228
9 cairo_region_destroy [function] [call site] 00229
10 CAIRO_REFERENCE_COUNT_IS_INVALID [call site] 00230
10 assert [call site] 00231
10 CAIRO_REFERENCE_COUNT_HAS_REFERENCE [call site] 00232
10 _cairo_reference_count_dec_and_test [call site] 00233
10 _cairo_region_fini [function] [call site] 00234
11 assert [call site] 00235
11 CAIRO_REFERENCE_COUNT_HAS_REFERENCE [call site] 00236
11 pixman_region32_fini [call site] 00237
11 VG [call site] 00238
11 VALGRIND_MAKE_MEM_UNDEFINED [call site] 00239
10 free [call site] 00240
9 free [call site] 00241
8 _cairo_user_data_array_fini [function] [call site] 00242
8 _cairo_user_data_array_fini [function] [call site] 00243
8 cairo_pattern_destroy [call site] 00244
8 cairo_device_destroy [function] [call site] 00245
9 CAIRO_REFERENCE_COUNT_IS_INVALID [call site] 00246
9 assert [call site] 00247
9 CAIRO_REFERENCE_COUNT_HAS_REFERENCE [call site] 00248
9 _cairo_reference_count_dec_and_test [call site] 00249
9 cairo_device_finish [function] [call site] 00250
10 CAIRO_REFERENCE_COUNT_IS_INVALID [call site] 00251
10 cairo_device_flush [function] [call site] 00252
11 unlikely [call site] 00253
11 _cairo_device_set_error [function] [call site] 00254
12 _cairo_status_set_error [call site] 00255
12 _cairo_error [function] [call site] 00256
9 assert [call site] 00257
9 CAIRO_MUTEX_FINI [call site] 00258
9 _cairo_user_data_array_fini [function] [call site] 00259
8 _cairo_font_options_fini [function] [call site] 00260
9 free [call site] 00261
9 free [call site] 00262
8 assert [call site] 00263
8 assert [call site] 00264
8 _cairo_surface_has_snapshots [function] [call site] 00265
8 assert [call site] 00266
8 CAIRO_REFERENCE_COUNT_HAS_REFERENCE [call site] 00267
8 free [call site] 00268
7 _cairo_path_fixed_destroy [function] [call site] 00269
8 _cairo_path_fixed_fini [function] [call site] 00270
9 cairo_path_buf_next [call site] 00271
9 cairo_path_head [call site] 00272
9 cairo_path_head [call site] 00273
9 cairo_path_buf_next [call site] 00274
9 _cairo_path_buf_destroy [function] [call site] 00275
10 free [call site] 00276
9 VG [call site] 00277
9 VALGRIND_MAKE_MEM_UNDEFINED [call site] 00278
8 free [call site] 00279
7 _cairo_array_append [function] [call site] 00280
8 _cairo_array_append_multiple [function] [call site] 00281
9 _cairo_array_allocate [function] [call site] 00282
10 _cairo_array_grow_by [function] [call site] 00283
11 _cairo_error [function] [call site] 00284
11 CAIRO_INJECT_FAULT [call site] 00285
11 _cairo_error [function] [call site] 00286
11 _cairo_realloc_ab [function] [call site] 00287
12 _cairo_mul_size_t_overflow [call site] 00288
12 realloc [call site] 00289
11 unlikely [call site] 00290
11 _cairo_error [function] [call site] 00291
10 unlikely [call site] 00292
10 assert [call site] 00293
9 unlikely [call site] 00294
9 memcpy [call site] 00295
7 assert [call site] 00296
7 cairo_surface_destroy [function] [call site] 00297
6 _cairo_scaled_font_thaw_cache [function] [call site] 00298
7 assert [call site] 00299
7 CAIRO_MUTEX_LOCK [call site] 00300
7 _cairo_cache_thaw [function] [call site] 00301
8 assert [call site] 00302
8 _cairo_cache_shrink_to_accommodate [function] [call site] 00303
7 CAIRO_MUTEX_UNLOCK [call site] 00304
7 _cairo_scaled_font_free_recording_surfaces [function] [call site] 00305
8 _cairo_array_num_elements [function] [call site] 00306
8 _cairo_array_copy_element [function] [call site] 00307
9 memcpy [call site] 00308
9 _cairo_array_index_const [function] [call site] 00309
10 assert [call site] 00310
8 cairo_surface_finish [call site] 00311
8 cairo_surface_destroy [function] [call site] 00312
8 _cairo_array_truncate [function] [call site] 00313
7 CAIRO_MUTEX_UNLOCK [call site] 00314
6 CAIRO_MUTEX_LOCK [call site] 00315
6 CAIRO_MUTEX_LOCK [call site] 00316
6 _cairo_cache_remove [function] [call site] 00317
6 _cairo_scaled_glyph_page_destroy [function] [call site] 00318
7 assert [call site] 00319
7 assert [call site] 00320
7 _cairo_hash_table_remove [function] [call site] 00321
7 _cairo_scaled_glyph_fini [function] [call site] 00322
7 cairo_list_del [function] [call site] 00323
7 free [call site] 00324
6 CAIRO_MUTEX_UNLOCK [call site] 00325
6 CAIRO_MUTEX_UNLOCK [call site] 00326
6 _cairo_scaled_font_freeze_cache [function] [call site] 00327
5 _cairo_hash_table_insert [function] [call site] 00328
5 unlikely [call site] 00329
5 _cairo_scaled_font_free_last_glyph [function] [call site] 00330
5 _cairo_color_equal [function] [call site] 00331
5 _cairo_color_equal [function] [call site] 00332
5 unlikely [call site] 00333
5 _cairo_scaled_font_set_error [function] [call site] 00334
6 _cairo_status_set_error [call site] 00335
6 _cairo_error [function] [call site] 00336
4 unlikely [call site] 00337
3 cairo_scaled_font_text_to_glyphs_internal_uncached [function] [call site] 00338
4 _cairo_utf8_get_char_validated [function] [call site] 00339
4 _cairo_scaled_glyph_lookup [function] [call site] 00340
4 unlikely [call site] 00341
3 _cairo_scaled_font_thaw_cache [function] [call site] 00342
3 unlikely [call site] 00343
3 cairo_glyph_free [function] [call site] 00344
4 free [call site] 00345
3 cairo_text_cluster_free [function] [call site] 00346
4 free [call site] 00347
3 _cairo_scaled_font_set_error [function] [call site] 00348
2 likely [call site] 00349
2 cairo_glyph_free [function] [call site] 00350
2 unlikely [call site] 00351
2 _cairo_set_error [function] [call site] 00352
1 cairo_show_text_glyphs [call site] 00353
1 cairo_destroy [call site] 00354
1 cairo_surface_destroy [function] [call site] 00355
1 free [call site] 00356
1 fuzzer_release_tmpfile [function] [call site] 00357