Fuzz introspector: surface_write_png_fuzzer
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
16 206 cairo_surface_destroy call site: 00206 cairo_pattern_destroy
7 95 cairo_format_stride_for_width call site: 00095 _cairo_surface_create_in_error
7 182 _cairo_surface_has_snapshots call site: 00182 _cairo_surface_detach_snapshot
7 314 _cairo_image_surface_coerce_to_format call site: 00314 cairo_image_surface_create
6 196 _cairo_surface_finish call site: 00196 _cairo_damage_destroy
5 25 _cairo_error call site: 00025 _cairo_surface_create_in_error
5 226 cairo_surface_destroy call site: 00226 _cairo_surface_detach_snapshot
5 258 _cairo_hash_table_insert call site: 00258 _cairo_hash_table_lookup_unique_key
4 116 cairo_image_surface_create_for_data call site: 00116 _cairo_surface_create_in_error
4 295 cairo_surface_write_to_png call site: 00295 _cairo_error
4 302 _cairo_surface_acquire_source_image call site: 00302 _cairo_surface_set_error
3 8 fuzzer_get_tmpfile call site: 00008 perror

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 [function] [call site] 00017
2 _cairo_fopen [function] [call site] 00018
3 snprintf [call site] 00019
3 fopen64 [call site] 00020
2 _cairo_surface_create_in_error [function] [call site] 00021
3 __assert_fail [call site] 00022
3 __assert_fail [call site] 00023
3 _cairo_error [function] [call site] 00024
4 __assert_fail [call site] 00025
2 __errno_location [call site] 00026
2 _cairo_error [function] [call site] 00027
2 _cairo_error [function] [call site] 00028
2 _cairo_error [function] [call site] 00029
2 _cairo_surface_create_in_error [function] [call site] 00030
2 read_png [function] [call site] 00031
3 _cairo_memory_stream_create [function] [call site] 00032
4 calloc [call site] 00033
4 _cairo_error [function] [call site] 00034
4 _cairo_output_stream_init [function] [call site] 00035
4 memory_write [function] [call site] 00036
5 _cairo_array_append_multiple [function] [call site] 00037
6 _cairo_array_allocate [function] [call site] 00038
7 _cairo_array_grow_by [function] [call site] 00039
8 _cairo_error [function] [call site] 00040
8 realloc [call site] 00041
8 _cairo_error [function] [call site] 00042
7 __assert_fail [call site] 00043
4 memory_close [function] [call site] 00044
5 _cairo_array_fini [function] [call site] 00045
4 _cairo_array_init [function] [call site] 00046
3 png_create_read_struct [call site] 00047
3 png_simple_error_callback [function] [call site] 00048
4 png_get_error_ptr [call site] 00049
4 _cairo_error [function] [call site] 00050
4 png_set_longjmp_fn [call site] 00051
4 longjmp [call site] 00052
3 png_simple_warning_callback [function] [call site] 00053
3 _cairo_error [function] [call site] 00054
3 _cairo_surface_create_in_error [function] [call site] 00055
3 png_create_info_struct [call site] 00056
3 _cairo_error [function] [call site] 00057
3 _cairo_surface_create_in_error [function] [call site] 00058
3 png_set_read_fn [call site] 00059
3 stream_read_func [function] [call site] 00060
4 png_get_io_ptr [call site] 00061
4 png_get_error_ptr [call site] 00062
4 png_error [call site] 00063
4 _cairo_output_stream_write [function] [call site] 00064
3 png_set_longjmp_fn [call site] 00065
3 longjmp [call site] 00066
3 _setjmp [call site] 00067
3 _cairo_surface_create_in_error [function] [call site] 00068
3 png_read_info [call site] 00069
3 png_set_swap [call site] 00070
3 png_get_IHDR [call site] 00071
3 _cairo_surface_create_in_error [function] [call site] 00072
3 png_set_palette_to_rgb [call site] 00073
3 png_set_expand_gray_1_2_4_to_8 [call site] 00074
3 png_get_valid [call site] 00075
3 png_set_tRNS_to_alpha [call site] 00076
3 png_set_packing [call site] 00077
3 png_set_gray_to_rgb [call site] 00078
3 png_set_interlace_handling [call site] 00079
3 png_set_filler [call site] 00080
3 png_read_update_info [call site] 00081
3 png_get_IHDR [call site] 00082
3 _cairo_error [function] [call site] 00083
3 _cairo_surface_create_in_error [function] [call site] 00084
3 __assert_fail [call site] 00085
3 png_set_read_user_transform_fn [call site] 00086
3 premultiply_data [function] [call site] 00087
4 multiply_alpha [function] [call site] 00088
4 multiply_alpha [function] [call site] 00089
4 multiply_alpha [function] [call site] 00090
3 png_set_read_user_transform_fn [call site] 00091
3 convert_bytes_to_data [function] [call site] 00092
3 cairo_format_stride_for_width [function] [call site] 00093
4 _cairo_error [function] [call site] 00094
4 _cairo_format_bits_per_pixel [function] [call site] 00095
5 __assert_fail [call site] 00096
3 _cairo_error [function] [call site] 00097
3 _cairo_surface_create_in_error [function] [call site] 00098
3 _cairo_error [function] [call site] 00099
3 _cairo_surface_create_in_error [function] [call site] 00100
3 _cairo_error [function] [call site] 00101
3 _cairo_surface_create_in_error [function] [call site] 00102
3 png_read_image [call site] 00103
3 png_read_end [call site] 00104
3 _cairo_surface_create_in_error [function] [call site] 00105
3 premultiply_float [function] [call site] 00106
3 convert_u16_to_float [function] [call site] 00107
3 cairo_image_surface_create_for_data [function] [call site] 00108
4 _cairo_error [function] [call site] 00109
4 _cairo_surface_create_in_error [function] [call site] 00110
4 _cairo_error [function] [call site] 00111
4 _cairo_surface_create_in_error [function] [call site] 00112
4 _cairo_image_surface_is_size_valid [function] [call site] 00113
4 _cairo_error [function] [call site] 00114
4 _cairo_surface_create_in_error [function] [call site] 00115
4 cairo_format_stride_for_width [function] [call site] 00116
4 _cairo_error [function] [call site] 00117
4 _cairo_surface_create_in_error [function] [call site] 00118
4 _cairo_error [function] [call site] 00119
4 _cairo_surface_create_in_error [function] [call site] 00120
4 _cairo_format_to_pixman_format_code [function] [call site] 00121
4 _cairo_image_surface_create_with_pixman_format [function] [call site] 00122
5 _cairo_image_surface_is_size_valid [function] [call site] 00123
5 _cairo_error [function] [call site] 00124
5 _cairo_surface_create_in_error [function] [call site] 00125
5 pixman_image_create_bits [call site] 00126
5 _cairo_error [function] [call site] 00127
5 _cairo_surface_create_in_error [function] [call site] 00128
5 _cairo_image_surface_create_for_pixman_image [function] [call site] 00129
6 calloc [call site] 00130
6 _cairo_error [function] [call site] 00131
6 _cairo_surface_create_in_error [function] [call site] 00132
6 _cairo_content_from_pixman_format [function] [call site] 00133
6 _cairo_surface_init [function] [call site] 00134
7 cairo_device_reference [function] [call site] 00135
8 __assert_fail [call site] 00136
7 _cairo_surface_allocate_unique_id [function] [call site] 00137
7 _cairo_user_data_array_init [function] [call site] 00138
8 _cairo_array_init [function] [call site] 00139
7 _cairo_user_data_array_init [function] [call site] 00140
7 cairo_matrix_init_identity [function] [call site] 00141
8 cairo_matrix_init [function] [call site] 00142
7 cairo_matrix_init_identity [function] [call site] 00143
7 cairo_list_init [function] [call site] 00144
7 cairo_list_init [function] [call site] 00145
6 _cairo_image_surface_init [function] [call site] 00146
7 _cairo_format_from_pixman_format [function] [call site] 00147
7 pixman_image_get_data [call site] 00148
7 pixman_image_get_width [call site] 00149
7 pixman_image_get_height [call site] 00150
7 pixman_image_get_stride [call site] 00151
7 pixman_image_get_depth [call site] 00152
7 _cairo_image_spans_compositor_get [function] [call site] 00153
8 _cairo_image_traps_compositor_get [function] [call site] 00154
9 _cairo_traps_compositor_init [function] [call site] 00155
9 __assert_fail [call site] 00156
8 _cairo_shape_mask_compositor_init [function] [call site] 00157
8 _cairo_spans_compositor_init [function] [call site] 00158
8 __assert_fail [call site] 00159
5 pixman_image_unref [call site] 00160
3 _cairo_image_surface_assume_ownership_of_data [function] [call site] 00161
3 _cairo_memory_stream_destroy [function] [call site] 00162
4 _cairo_output_stream_destroy [function] [call site] 00163
5 __assert_fail [call site] 00164
5 _cairo_output_stream_fini [function] [call site] 00165
6 _cairo_output_stream_close [function] [call site] 00166
4 _cairo_array_num_elements [function] [call site] 00167
4 calloc [call site] 00168
4 _cairo_output_stream_destroy [function] [call site] 00169
4 __assert_fail [call site] 00170
4 _cairo_error [function] [call site] 00171
4 _cairo_array_index [function] [call site] 00172
5 __assert_fail [call site] 00173
4 _cairo_output_stream_destroy [function] [call site] 00174
3 cairo_surface_destroy [function] [call site] 00175
4 __assert_fail [call site] 00176
4 __assert_fail [call site] 00177
4 _cairo_surface_finish_snapshots [function] [call site] 00178
5 _cairo_surface_flush [function] [call site] 00179
6 _cairo_surface_detach_snapshots [function] [call site] 00180
7 _cairo_surface_has_snapshots [function] [call site] 00181
8 cairo_list_is_empty [function] [call site] 00182
7 _cairo_surface_detach_snapshot [function] [call site] 00183
8 __assert_fail [call site] 00184
8 cairo_list_del [function] [call site] 00185
9 _cairo_list_del [function] [call site] 00186
10 __cairo_list_del [function] [call site] 00187
9 cairo_list_init [function] [call site] 00188
8 cairo_surface_destroy [function] [call site] 00189
9 _cairo_surface_finish [function] [call site] 00190
10 _cairo_surface_set_error [function] [call site] 00191
11 __assert_fail [call site] 00192
11 _cairo_error [function] [call site] 00193
10 __assert_fail [call site] 00194
10 _cairo_surface_has_snapshots [function] [call site] 00195
10 __assert_fail [call site] 00196
9 _cairo_damage_destroy [function] [call site] 00197
10 cairo_region_destroy [function] [call site] 00198
11 __assert_fail [call site] 00199
11 _cairo_region_fini [function] [call site] 00200
12 __assert_fail [call site] 00201
12 pixman_region32_fini [call site] 00202
9 _cairo_user_data_array_fini [function] [call site] 00203
10 _cairo_array_index [function] [call site] 00204
10 _cairo_array_fini [function] [call site] 00205
9 _cairo_user_data_array_fini [function] [call site] 00206
9 cairo_pattern_destroy [function] [call site] 00207
10 __assert_fail [call site] 00208
10 _cairo_pattern_fini [function] [call site] 00209
11 _cairo_user_data_array_fini [function] [call site] 00210
11 cairo_surface_destroy [function] [call site] 00211
12 cairo_device_destroy [function] [call site] 00212
13 __assert_fail [call site] 00213
13 cairo_device_finish [function] [call site] 00214
14 cairo_device_flush [function] [call site] 00215
15 _cairo_device_set_error [function] [call site] 00216
16 __assert_fail [call site] 00217
16 _cairo_error [function] [call site] 00218
13 __assert_fail [call site] 00219
13 pthread_mutex_destroy [call site] 00220
13 _cairo_user_data_array_fini [function] [call site] 00221
12 _cairo_font_options_fini [function] [call site] 00222
12 __assert_fail [call site] 00223
12 _cairo_surface_has_snapshots [function] [call site] 00224
12 __assert_fail [call site] 00225
12 __assert_fail [call site] 00226
11 _cairo_array_fini [function] [call site] 00227
11 _cairo_raster_source_pattern_finish [function] [call site] 00228
10 _freed_pool_put [function] [call site] 00229
11 _freed_pool_put_search [function] [call site] 00230
6 _cairo_surface_detach_snapshot [function] [call site] 00231
6 _cairo_surface_detach_mime_data [function] [call site] 00232
7 _cairo_surface_has_mime_data [function] [call site] 00233
7 _cairo_user_data_array_fini [function] [call site] 00234
7 _cairo_user_data_array_init [function] [call site] 00235
6 __cairo_surface_flush [function] [call site] 00236
3 _cairo_surface_create_in_error [function] [call site] 00237
3 cairo_surface_set_mime_data [function] [call site] 00238
4 _cairo_error [function] [call site] 00239
4 _cairo_error [function] [call site] 00240
4 _cairo_surface_set_error [function] [call site] 00241
4 _cairo_intern_string [function] [call site] 00242
5 strlen [call site] 00243
5 _cairo_string_hash [function] [call site] 00244
5 pthread_mutex_lock [call site] 00245
5 _cairo_hash_table_create [function] [call site] 00246
6 calloc [call site] 00247
6 _cairo_error [function] [call site] 00248
6 calloc [call site] 00249
6 _cairo_error [function] [call site] 00250
5 _intern_string_equal [function] [call site] 00251
6 memcmp [call site] 00252
5 _cairo_error [function] [call site] 00253
5 _cairo_hash_table_lookup [function] [call site] 00254
6 __assert_fail [call site] 00255
5 _cairo_hash_table_insert [function] [call site] 00256
6 __assert_fail [call site] 00257
6 _cairo_hash_table_manage [function] [call site] 00258
7 __assert_fail [call site] 00259
7 calloc [call site] 00260
7 _cairo_error [function] [call site] 00261
7 _cairo_hash_table_lookup_unique_key [function] [call site] 00262
8 __assert_fail [call site] 00263
6 _cairo_hash_table_lookup_unique_key [function] [call site] 00264
5 _cairo_error [function] [call site] 00265
5 pthread_mutex_unlock [call site] 00266
4 _cairo_surface_set_error [function] [call site] 00267
4 calloc [call site] 00268
4 _cairo_error [function] [call site] 00269
4 _cairo_surface_set_error [function] [call site] 00270
4 _cairo_user_data_array_set_data [function] [call site] 00271
5 _cairo_array_index [function] [call site] 00272
5 _cairo_array_append [function] [call site] 00273
6 _cairo_array_append_multiple [function] [call site] 00274
4 _cairo_mime_data_destroy [function] [call site] 00275
4 _cairo_surface_set_error [function] [call site] 00276
3 cairo_surface_destroy [function] [call site] 00277
3 _cairo_surface_create_in_error [function] [call site] 00278
3 png_destroy_read_struct [call site] 00279
3 _cairo_output_stream_destroy [function] [call site] 00280
2 fclose [call site] 00281
1 cairo_surface_status [function] [call site] 00282
1 fuzzer_release_tmpfile [function] [call site] 00283
2 unlink [call site] 00284
2 perror [call site] 00285
1 cairo_image_surface_get_format [function] [call site] 00286
2 _cairo_surface_is_image [function] [call site] 00287
2 _cairo_error [function] [call site] 00288
1 cairo_image_surface_create_for_data [function] [call site] 00289
1 cairo_surface_status [function] [call site] 00290
1 cairo_surface_destroy [function] [call site] 00291
1 fuzzer_release_tmpfile [function] [call site] 00292
1 cairo_surface_write_to_png [function] [call site] 00293
2 _cairo_error [function] [call site] 00294
2 _cairo_fopen [function] [call site] 00295
2 _cairo_error [function] [call site] 00296
2 __errno_location [call site] 00297
2 _cairo_error [function] [call site] 00298
2 _cairo_error [function] [call site] 00299
2 write_png [function] [call site] 00300
3 _cairo_surface_acquire_source_image [function] [call site] 00301
4 __assert_fail [call site] 00302
4 _cairo_surface_set_error [function] [call site] 00303
3 _cairo_error [function] [call site] 00304
3 _cairo_error [function] [call site] 00305
3 _cairo_error [function] [call site] 00306
3 cairo_surface_reference [function] [call site] 00307
4 __assert_fail [call site] 00308
3 _cairo_image_surface_coerce [function] [call site] 00309
4 _cairo_format_from_content [function] [call site] 00310
5 __assert_fail [call site] 00311
4 _cairo_image_surface_coerce_to_format [function] [call site] 00312
5 _cairo_surface_create_in_error [function] [call site] 00313
5 cairo_surface_reference [function] [call site] 00314
5 cairo_image_surface_create [function] [call site] 00315
6 _cairo_error [function] [call site] 00316
6 _cairo_surface_create_in_error [function] [call site] 00317
6 _cairo_format_to_pixman_format_code [function] [call site] 00318
6 _cairo_image_surface_create_with_pixman_format [function] [call site] 00319
5 pixman_image_composite32 [call site] 00320
3 _cairo_error [function] [call site] 00321
3 unpremultiply_float [function] [call site] 00322
3 convert_float_to_u16 [function] [call site] 00327
3 png_create_write_struct [call site] 00331
3 png_simple_error_callback [function] [call site] 00332
3 png_simple_warning_callback [function] [call site] 00333
3 _cairo_error [function] [call site] 00334
3 png_create_info_struct [call site] 00335
3 _cairo_error [function] [call site] 00336
3 png_set_longjmp_fn [call site] 00337
3 longjmp [call site] 00338
3 _setjmp [call site] 00339
3 png_set_write_fn [call site] 00340
3 png_simple_output_flush_fn [function] [call site] 00341
3 _cairo_image_analyze_transparency [function] [call site] 00342
4 _cairo_surface_is_snapshot [function] [call site] 00343
4 _cairo_image_compute_transparency [function] [call site] 00344
4 _cairo_image_compute_transparency [function] [call site] 00345
3 png_set_packswap [call site] 00346
3 _cairo_error [function] [call site] 00347
3 png_set_IHDR [call site] 00348
3 png_set_bKGD [call site] 00349
3 png_write_info [call site] 00350
3 png_set_swap [call site] 00351
3 png_set_write_user_transform_fn [call site] 00352
3 unpremultiply_data [function] [call site] 00353
3 png_set_write_user_transform_fn [call site] 00354
3 convert_data_to_bytes [function] [call site] 00355
3 png_set_filler [call site] 00356
3 png_write_image [call site] 00357
3 png_write_end [call site] 00358
3 png_destroy_write_struct [call site] 00359
3 cairo_surface_destroy [function] [call site] 00360
3 _cairo_surface_release_source_image [function] [call site] 00361
4 __assert_fail [call site] 00362
2 stdio_write_func [function] [call site] 00363
3 png_get_io_ptr [call site] 00364
3 fwrite [call site] 00365
3 ferror [call site] 00366
3 png_get_error_ptr [call site] 00367
3 _cairo_error [function] [call site] 00368
3 png_error [call site] 00369
2 fclose [call site] 00370
2 _cairo_error [function] [call site] 00371
1 cairo_surface_destroy [function] [call site] 00372
1 cairo_surface_destroy [function] [call site] 00373
1 fuzzer_release_tmpfile [function] [call site] 00374