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: 00105 /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: 00112 /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: 00095 /src/hoextdown/src/document.c:718
0 0 None 131 4899 parse_block call site: 00084 /src/hoextdown/src/document.c:3560
0 0 None 131 4899 parse_block call site: 00190 /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_buffer_new [function] [call site] 00010
1 hoedown_buffer_new [function] [call site] 00011
1 hoedown_document_new [function] [call site] 00012
2 __assert_fail [call site] 00013
2 hoedown_malloc [function] [call site] 00014
2 hoedown_stack_init [function] [call site] 00015
3 __assert_fail [call site] 00016
3 hoedown_stack_grow [function] [call site] 00017
4 __assert_fail [call site] 00018
4 hoedown_realloc [function] [call site] 00019
5 realloc [call site] 00020
5 fprintf [call site] 00021
5 abort [call site] 00022
2 hoedown_stack_init [function] [call site] 00023
2 hoedown_stack_init [function] [call site] 00024
1 hoedown_document_render [function] [call site] 00025
2 hoedown_buffer_new [function] [call site] 00026
2 hoedown_buffer_grow [function] [call site] 00027
3 __assert_fail [call site] 00028
2 memcmp [call site] 00029
2 is_footnote [function] [call site] 00030
3 hoedown_buffer_new [function] [call site] 00031
3 hoedown_buffer_new [function] [call site] 00032
3 hoedown_buffer_putc [function] [call site] 00034
4 __assert_fail [call site] 00035
4 hoedown_buffer_grow [function] [call site] 00036
3 hoedown_buffer_put [function] [call site] 00037
4 __assert_fail [call site] 00038
4 hoedown_buffer_grow [function] [call site] 00039
3 hoedown_buffer_putc [function] [call site] 00040
3 create_footnote_ref [function] [call site] 00041
4 hoedown_calloc [function] [call site] 00042
5 calloc [call site] 00043
5 fprintf [call site] 00044
5 abort [call site] 00045
4 hash_link_ref [function] [call site] 00046
5 tolower [call site] 00047
3 add_footnote_ref [function] [call site] 00048
4 hoedown_calloc [function] [call site] 00049
3 free_footnote_ref [function] [call site] 00050
4 hoedown_buffer_free [function] [call site] 00051
5 __assert_fail [call site] 00052
4 hoedown_buffer_free [function] [call site] 00053
3 hoedown_buffer_put [function] [call site] 00054
2 is_html_comment [function] [call site] 00055
2 hoedown_buffer_put [function] [call site] 00056
2 hoedown_buffer_putc [function] [call site] 00057
2 is_ref [function] [call site] 00058
3 memchr [call site] 00059
3 add_link_ref [function] [call site] 00060
4 hoedown_calloc [function] [call site] 00061
4 hash_link_ref [function] [call site] 00062
3 hoedown_buffer_new [function] [call site] 00063
3 hoedown_buffer_put [function] [call site] 00064
3 hoedown_buffer_new [function] [call site] 00065
3 hoedown_buffer_put [function] [call site] 00066
3 hoedown_buffer_new [function] [call site] 00067
3 hoedown_buffer_put [function] [call site] 00068
2 expand_tabs [function] [call site] 00069
3 hoedown_buffer_put [function] [call site] 00070
3 hoedown_buffer_putc [function] [call site] 00071
2 hoedown_buffer_putc [function] [call site] 00072
2 hoedown_buffer_grow [function] [call site] 00073
2 hoedown_buffer_putc [function] [call site] 00074
2 parse_block [function] [call site] 00075
3 is_atxheader [function] [call site] 00076
4 memchr [call site] 00077
4 is_empty_all [function] [call site] 00078
4 memchr [call site] 00080
4 is_empty_all [function] [call site] 00081
4 parse_inline_attributes [function] [call site] 00082
5 hoedown_buffer_put [function] [call site] 00083
3 parse_atxheader [function] [call site] 00084
4 newbuf [function] [call site] 00085
5 hoedown_buffer_new [function] [call site] 00086
5 hoedown_stack_push [function] [call site] 00087
6 __assert_fail [call site] 00088
6 hoedown_stack_grow [function] [call site] 00089
4 parse_attributes [function] [call site] 00091
5 hoedown_buffer_reset [function] [call site] 00092
6 __assert_fail [call site] 00093
5 hoedown_buffer_put [function] [call site] 00094
5 parse_attributes [function] [call site] 00095
6 hoedown_buffer_reset [function] [call site] 00096
6 hoedown_buffer_put [function] [call site] 00097
4 parse_inline [function] [call site] 00098
5 hoedown_buffer_put [function] [call site] 00099
5 hoedown_buffer_put [function] [call site] 00100
3 parse_userblock [function] [call site] 00103
4 hoedown_buffer_put [function] [call site] 00104
3 parse_htmlblock [function] [call site] 00105
4 hoedown_find_html5_block_tag [function] [call site] 00106
5 gperf_case_strncmp [function] [call site] 00108
4 hoedown_find_block_tag [function] [call site] 00109
5 gperf_case_strncmp [function] [call site] 00111
4 hoedown_buffer_put [function] [call site] 00113
4 hoedown_buffer_putc [function] [call site] 00114
4 script_tag_length [function] [call site] 00116
4 strlen [call site] 00118
4 htmlblock_find_end_strict [function] [call site] 00119
5 htmlblock_find_end [function] [call site] 00120
6 htmlblock_is_end [function] [call site] 00121
7 strncasecmp [call site] 00122
4 strcmp [call site] 00125
4 htmlblock_find_end [function] [call site] 00126
3 parse_fencedcode [function] [call site] 00129
3 parse_table [function] [call site] 00141
4 parse_table_header [function] [call site] 00146
5 is_backslashed [function] [call site] 00147
5 is_backslashed [function] [call site] 00149
5 parse_attributes [function] [call site] 00150
5 is_backslashed [function] [call site] 00152
5 hoedown_buffer_put [function] [call site] 00154
5 hoedown_calloc [function] [call site] 00155
5 is_backslashed [function] [call site] 00156
5 is_backslashed [function] [call site] 00157
5 hoedown_buffer_putc [function] [call site] 00158
5 hoedown_buffer_put [function] [call site] 00159
5 parse_table_row [function] [call site] 00161
6 parse_table_cell_line [function] [call site] 00165
7 find_separator_char [function] [call site] 00167
8 is_backslashed [function] [call site] 00168
7 hoedown_buffer_putc [function] [call site] 00170
7 hoedown_buffer_put [function] [call site] 00171
7 hoedown_buffer_put [function] [call site] 00172
6 is_backslashed [function] [call site] 00173
6 parse_table_cell_line [function] [call site] 00174
6 parse_inline [function] [call site] 00175
4 is_backslashed [function] [call site] 00180
4 is_backslashed [function] [call site] 00181
4 is_backslashed [function] [call site] 00182
4 is_backslashed [function] [call site] 00183
4 parse_table_row [function] [call site] 00184
3 prefix_quote [function] [call site] 00189
3 parse_blockquote [function] [call site] 00190
4 prefix_quote [function] [call site] 00192
4 prefix_quote [function] [call site] 00195
4 parse_block [function] [call site] 00197
5 prefix_code [function] [call site] 00198
5 parse_blockcode [function] [call site] 00199
6 prefix_code [function] [call site] 00202
6 hoedown_buffer_putc [function] [call site] 00205
6 hoedown_buffer_put [function] [call site] 00206
6 parse_attributes [function] [call site] 00207
6 hoedown_buffer_putc [function] [call site] 00208
5 prefix_uli [function] [call site] 00211
6 is_next_headerline [function] [call site] 00212
7 is_headerline [function] [call site] 00213
5 parse_list [function] [call site] 00214
6 parse_definition [function] [call site] 00217
7 prefix_dli [function] [call site] 00218
8 prefix_dt [function] [call site] 00219
9 is_next_headerline [function] [call site] 00220
8 is_paragraph [function] [call site] 00222
9 is_atxheader [function] [call site] 00224
9 parse_userblock [function] [call site] 00225
9 parse_htmlblock [function] [call site] 00226
9 parse_fencedcode [function] [call site] 00228
9 parse_table [function] [call site] 00229
9 prefix_quote [function] [call site] 00230
9 prefix_code [function] [call site] 00231
9 prefix_uli [function] [call site] 00232
9 prefix_oli [function] [call site] 00233
10 is_next_headerline [function] [call site] 00234
9 prefix_dli [function] [call site] 00235
10 prefix_dt [function] [call site] 00236
7 parse_attributes [function] [call site] 00241
7 parse_inline [function] [call site] 00242
7 parse_listitem [function] [call site] 00245
8 prefix_uli [function] [call site] 00246
8 prefix_oli [function] [call site] 00247
8 hoedown_buffer_new [function] [call site] 00248
8 hoedown_buffer_put [function] [call site] 00249
8 prefix_dt [function] [call site] 00250
8 hoedown_buffer_free [function] [call site] 00251
8 is_codefence [function] [call site] 00252
8 hoedown_buffer_put [function] [call site] 00255
8 is_codefence [function] [call site] 00258
8 prefix_uli [function] [call site] 00259
8 prefix_oli [function] [call site] 00260
8 prefix_dt [function] [call site] 00261
8 hoedown_buffer_putc [function] [call site] 00263
8 hoedown_buffer_put [function] [call site] 00264
8 parse_attributes [function] [call site] 00265
8 parse_block [function] [call site] 00266
9 prefix_oli [function] [call site] 00267
9 parse_list [function] [call site] 00268
10 parse_listitem [function] [call site] 00269
11 parse_block [function] [call site] 00270
12 prefix_dli [function] [call site] 00271
12 parse_paragraph [function] [call site] 00275
13 is_empty [function] [call site] 00276
13 is_headerline [function] [call site] 00277
13 is_atxheader [function] [call site] 00278
13 is_hrule [function] [call site] 00279
13 prefix_quote [function] [call site] 00280
13 parse_attributes [function] [call site] 00282
13 parse_inline [function] [call site] 00284
13 parse_inline [function] [call site] 00288
13 parse_attributes [function] [call site] 00292
13 parse_inline [function] [call site] 00293
11 parse_block [function] [call site] 00296
11 parse_attributes [function] [call site] 00297
11 parse_inline [function] [call site] 00298
11 parse_block [function] [call site] 00299
11 parse_attributes [function] [call site] 00300
11 parse_inline [function] [call site] 00301
11 hoedown_buffer_free [function] [call site] 00302
2 parse_footnote_list [function] [call site] 00307
2 hoedown_buffer_free [function] [call site] 00314
2 free_link_refs [function] [call site] 00315
3 hoedown_buffer_free [function] [call site] 00316
3 hoedown_buffer_free [function] [call site] 00317
3 hoedown_buffer_free [function] [call site] 00318
2 free_footnote_list [function] [call site] 00319
3 free_footnote_ref [function] [call site] 00320
2 free_footnote_list [function] [call site] 00321
2 __assert_fail [call site] 00322
2 __assert_fail [call site] 00323
2 __assert_fail [call site] 00324
1 hoedown_buffer_free [function] [call site] 00325
1 hoedown_document_free [function] [call site] 00326
2 hoedown_buffer_free [function] [call site] 00327
2 hoedown_buffer_free [function] [call site] 00328
2 hoedown_buffer_free [function] [call site] 00329
2 hoedown_stack_uninit [function] [call site] 00330
3 __assert_fail [call site] 00331
2 hoedown_stack_uninit [function] [call site] 00332
2 hoedown_stack_uninit [function] [call site] 00333
1 hoedown_buffer_free [function] [call site] 00334
1 hoedown_buffer_free [function] [call site] 00335