Fuzz introspector: hoedown_fuzzer
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
21 37 2 :

['hoedown_buffer_new', 'buffer_copy_with_replace']

21 70 rndr_list call site: 00000 /src/hoextdown/src/html.c:522
17 17 1 :

['hoedown_find_block_tag']

23 123 parse_htmlblock call site: 00109 /src/hoextdown/src/document.c:2884
9 9 1 :

['hoedown_hash_strdup']

9 9 hoedown_hash_item_push call site: 00000 /src/hoextdown/src/hash.c:112
2 2 1 :

['strlen']

2 2 hoedown_hash_fnv call site: 00000 /src/hoextdown/src/hash.c:38
0 22 1 :

['hoedown_buffer_putc']

0 99 rndr_autolink call site: 00000 /src/hoextdown/src/html.c:188
0 22 2 :

['hoedown_buffer_putc', 'hoedown_buffer_put']

0 22 parse_htmlblock call site: 00116 /src/hoextdown/src/document.c:2916
0 11 1 :

['hoedown_buffer_putc']

0 11 char_escape call site: 00000 /src/hoextdown/src/document.c:1207
0 11 1 :

['hoedown_buffer_putc']

0 11 char_escape call site: 00000 /src/hoextdown/src/document.c:1216
0 11 1 :

['hoedown_buffer_put']

0 11 rndr_raw_html call site: 00000 /src/hoextdown/src/html.c:780
0 5 1 :

['hoedown_buffer_reset']

0 16 parse_attributes call site: 00099 /src/hoextdown/src/document.c:718
0 0 None 131 4899 parse_block call site: 00088 /src/hoextdown/src/document.c:3560
0 0 None 131 4899 parse_block call site: 00194 /src/hoextdown/src/document.c:3595

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 hoedown_buffer_new [function] [call site] 00001
2 hoedown_buffer_init [function] [call site] 00002
3 __assert_fail [call site] 00003
1 hoedown_html_renderer_new [function] [call site] 00004
2 hoedown_malloc [function] [call site] 00005
3 fprintf [call site] 00006
3 abort [call site] 00007
2 hoedown_malloc [function] [call site] 00008
2 hoedown_hash_new [function] [call site] 00009
1 hoedown_html_renderer_free [function] [call site] 00010
2 hoedown_hash_free [function] [call site] 00011
3 hoedown_hash_item_free [function] [call site] 00012
4 hoedown_hash_item_free [function] [call site] 00013
1 hoedown_buffer_new [function] [call site] 00014
1 hoedown_buffer_new [function] [call site] 00015
1 hoedown_document_new [function] [call site] 00016
2 __assert_fail [call site] 00017
2 hoedown_malloc [function] [call site] 00018
2 hoedown_stack_init [function] [call site] 00019
3 __assert_fail [call site] 00020
3 hoedown_stack_grow [function] [call site] 00021
4 __assert_fail [call site] 00022
4 hoedown_realloc [function] [call site] 00023
5 realloc [call site] 00024
5 fprintf [call site] 00025
5 abort [call site] 00026
2 hoedown_stack_init [function] [call site] 00027
2 hoedown_stack_init [function] [call site] 00028
1 hoedown_document_render [function] [call site] 00029
2 hoedown_buffer_new [function] [call site] 00030
2 hoedown_buffer_grow [function] [call site] 00031
3 __assert_fail [call site] 00032
2 memcmp [call site] 00033
2 is_footnote [function] [call site] 00034
3 hoedown_buffer_new [function] [call site] 00035
3 hoedown_buffer_new [function] [call site] 00036
3 hoedown_buffer_putc [function] [call site] 00038
4 __assert_fail [call site] 00039
4 hoedown_buffer_grow [function] [call site] 00040
3 hoedown_buffer_put [function] [call site] 00041
4 __assert_fail [call site] 00042
4 hoedown_buffer_grow [function] [call site] 00043
3 hoedown_buffer_putc [function] [call site] 00044
3 create_footnote_ref [function] [call site] 00045
4 hoedown_calloc [function] [call site] 00046
5 calloc [call site] 00047
5 fprintf [call site] 00048
5 abort [call site] 00049
4 hash_link_ref [function] [call site] 00050
5 tolower [call site] 00051
3 add_footnote_ref [function] [call site] 00052
4 hoedown_calloc [function] [call site] 00053
3 free_footnote_ref [function] [call site] 00054
4 hoedown_buffer_free [function] [call site] 00055
5 __assert_fail [call site] 00056
4 hoedown_buffer_free [function] [call site] 00057
3 hoedown_buffer_put [function] [call site] 00058
2 is_html_comment [function] [call site] 00059
2 hoedown_buffer_put [function] [call site] 00060
2 hoedown_buffer_putc [function] [call site] 00061
2 is_ref [function] [call site] 00062
3 memchr [call site] 00063
3 add_link_ref [function] [call site] 00064
4 hoedown_calloc [function] [call site] 00065
4 hash_link_ref [function] [call site] 00066
3 hoedown_buffer_new [function] [call site] 00067
3 hoedown_buffer_put [function] [call site] 00068
3 hoedown_buffer_new [function] [call site] 00069
3 hoedown_buffer_put [function] [call site] 00070
3 hoedown_buffer_new [function] [call site] 00071
3 hoedown_buffer_put [function] [call site] 00072
2 expand_tabs [function] [call site] 00073
3 hoedown_buffer_put [function] [call site] 00074
3 hoedown_buffer_putc [function] [call site] 00075
2 hoedown_buffer_putc [function] [call site] 00076
2 hoedown_buffer_grow [function] [call site] 00077
2 hoedown_buffer_putc [function] [call site] 00078
2 parse_block [function] [call site] 00079
3 is_atxheader [function] [call site] 00080
4 memchr [call site] 00081
4 is_empty_all [function] [call site] 00082
4 memchr [call site] 00084
4 is_empty_all [function] [call site] 00085
4 parse_inline_attributes [function] [call site] 00086
5 hoedown_buffer_put [function] [call site] 00087
3 parse_atxheader [function] [call site] 00088
4 newbuf [function] [call site] 00089
5 hoedown_buffer_new [function] [call site] 00090
5 hoedown_stack_push [function] [call site] 00091
6 __assert_fail [call site] 00092
6 hoedown_stack_grow [function] [call site] 00093
4 parse_attributes [function] [call site] 00095
5 hoedown_buffer_reset [function] [call site] 00096
6 __assert_fail [call site] 00097
5 hoedown_buffer_put [function] [call site] 00098
5 parse_attributes [function] [call site] 00099
6 hoedown_buffer_reset [function] [call site] 00100
6 hoedown_buffer_put [function] [call site] 00101
4 parse_inline [function] [call site] 00102
5 hoedown_buffer_put [function] [call site] 00103
5 hoedown_buffer_put [function] [call site] 00104
3 parse_userblock [function] [call site] 00107
4 hoedown_buffer_put [function] [call site] 00108
3 parse_htmlblock [function] [call site] 00109
4 hoedown_find_html5_block_tag [function] [call site] 00110
5 gperf_case_strncmp [function] [call site] 00112
4 hoedown_find_block_tag [function] [call site] 00113
5 gperf_case_strncmp [function] [call site] 00115
4 hoedown_buffer_put [function] [call site] 00117
4 hoedown_buffer_putc [function] [call site] 00118
4 script_tag_length [function] [call site] 00120
4 strlen [call site] 00122
4 htmlblock_find_end_strict [function] [call site] 00123
5 htmlblock_find_end [function] [call site] 00124
6 htmlblock_is_end [function] [call site] 00125
7 strncasecmp [call site] 00126
4 strcmp [call site] 00129
4 htmlblock_find_end [function] [call site] 00130
3 parse_fencedcode [function] [call site] 00133
3 parse_table [function] [call site] 00145
4 parse_table_header [function] [call site] 00150
5 is_backslashed [function] [call site] 00151
5 is_backslashed [function] [call site] 00153
5 parse_attributes [function] [call site] 00154
5 is_backslashed [function] [call site] 00156
5 hoedown_buffer_put [function] [call site] 00158
5 hoedown_calloc [function] [call site] 00159
5 is_backslashed [function] [call site] 00160
5 is_backslashed [function] [call site] 00161
5 hoedown_buffer_putc [function] [call site] 00162
5 hoedown_buffer_put [function] [call site] 00163
5 parse_table_row [function] [call site] 00165
6 parse_table_cell_line [function] [call site] 00169
7 find_separator_char [function] [call site] 00171
8 is_backslashed [function] [call site] 00172
7 hoedown_buffer_putc [function] [call site] 00174
7 hoedown_buffer_put [function] [call site] 00175
7 hoedown_buffer_put [function] [call site] 00176
6 is_backslashed [function] [call site] 00177
6 parse_table_cell_line [function] [call site] 00178
6 parse_inline [function] [call site] 00179
4 is_backslashed [function] [call site] 00184
4 is_backslashed [function] [call site] 00185
4 is_backslashed [function] [call site] 00186
4 is_backslashed [function] [call site] 00187
4 parse_table_row [function] [call site] 00188
3 prefix_quote [function] [call site] 00193
3 parse_blockquote [function] [call site] 00194
4 prefix_quote [function] [call site] 00196
4 prefix_quote [function] [call site] 00199
4 parse_block [function] [call site] 00201
5 prefix_code [function] [call site] 00202
5 parse_blockcode [function] [call site] 00203
6 prefix_code [function] [call site] 00206
6 hoedown_buffer_putc [function] [call site] 00209
6 hoedown_buffer_put [function] [call site] 00210
6 parse_attributes [function] [call site] 00211
6 hoedown_buffer_putc [function] [call site] 00212
5 prefix_uli [function] [call site] 00215
6 is_next_headerline [function] [call site] 00216
7 is_headerline [function] [call site] 00217
5 parse_list [function] [call site] 00218
6 parse_definition [function] [call site] 00221
7 prefix_dli [function] [call site] 00222
8 prefix_dt [function] [call site] 00223
9 is_next_headerline [function] [call site] 00224
8 is_paragraph [function] [call site] 00226
9 is_atxheader [function] [call site] 00228
9 parse_userblock [function] [call site] 00229
9 parse_htmlblock [function] [call site] 00230
9 parse_fencedcode [function] [call site] 00232
9 parse_table [function] [call site] 00233
9 prefix_quote [function] [call site] 00234
9 prefix_code [function] [call site] 00235
9 prefix_uli [function] [call site] 00236
9 prefix_oli [function] [call site] 00237
10 is_next_headerline [function] [call site] 00238
9 prefix_dli [function] [call site] 00239
10 prefix_dt [function] [call site] 00240
7 parse_attributes [function] [call site] 00245
7 parse_inline [function] [call site] 00246
7 parse_listitem [function] [call site] 00249
8 prefix_uli [function] [call site] 00250
8 prefix_oli [function] [call site] 00251
8 hoedown_buffer_new [function] [call site] 00252
8 hoedown_buffer_put [function] [call site] 00253
8 prefix_dt [function] [call site] 00254
8 hoedown_buffer_free [function] [call site] 00255
8 is_codefence [function] [call site] 00256
8 hoedown_buffer_put [function] [call site] 00259
8 is_codefence [function] [call site] 00262
8 prefix_uli [function] [call site] 00263
8 prefix_oli [function] [call site] 00264
8 prefix_dt [function] [call site] 00265
8 hoedown_buffer_putc [function] [call site] 00267
8 hoedown_buffer_put [function] [call site] 00268
8 parse_attributes [function] [call site] 00269
8 parse_block [function] [call site] 00270
9 prefix_oli [function] [call site] 00271
9 parse_list [function] [call site] 00272
10 parse_listitem [function] [call site] 00273
11 parse_block [function] [call site] 00274
12 prefix_dli [function] [call site] 00275
12 parse_paragraph [function] [call site] 00279
13 is_empty [function] [call site] 00280
13 is_headerline [function] [call site] 00281
13 is_atxheader [function] [call site] 00282
13 is_hrule [function] [call site] 00283
13 prefix_quote [function] [call site] 00284
13 parse_attributes [function] [call site] 00286
13 parse_inline [function] [call site] 00288
13 parse_inline [function] [call site] 00292
13 parse_attributes [function] [call site] 00296
13 parse_inline [function] [call site] 00297
11 parse_block [function] [call site] 00300
11 parse_attributes [function] [call site] 00301
11 parse_inline [function] [call site] 00302
11 parse_block [function] [call site] 00303
11 parse_attributes [function] [call site] 00304
11 parse_inline [function] [call site] 00305
11 hoedown_buffer_free [function] [call site] 00306
2 parse_footnote_list [function] [call site] 00311
2 hoedown_buffer_free [function] [call site] 00318
2 free_link_refs [function] [call site] 00319
3 hoedown_buffer_free [function] [call site] 00320
3 hoedown_buffer_free [function] [call site] 00321
3 hoedown_buffer_free [function] [call site] 00322
2 free_footnote_list [function] [call site] 00323
3 free_footnote_ref [function] [call site] 00324
2 free_footnote_list [function] [call site] 00325
2 __assert_fail [call site] 00326
2 __assert_fail [call site] 00327
2 __assert_fail [call site] 00328
1 hoedown_buffer_free [function] [call site] 00329
1 hoedown_document_free [function] [call site] 00330
2 hoedown_buffer_free [function] [call site] 00331
2 hoedown_buffer_free [function] [call site] 00332
2 hoedown_buffer_free [function] [call site] 00333
2 hoedown_stack_uninit [function] [call site] 00334
3 __assert_fail [call site] 00335
2 hoedown_stack_uninit [function] [call site] 00336
2 hoedown_stack_uninit [function] [call site] 00337
1 hoedown_buffer_free [function] [call site] 00338
1 hoedown_buffer_free [function] [call site] 00339