Fuzz introspector: fuzz_iolog_json
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
10 10 2 :

['fputs', 'putc']

12 14 warning call site: 00027 /src/sudo/lib/util/./fatal.c:192
2 2 1 :

['strcmp']

9 9 initprogname2 call site: 00004 /src/sudo/lib/util/./progname.c:79
0 38 2 :

['sudo_warnx_nodebug_v1', 'sudo_warn_gettext_v1']

0 40 json_array_to_strvec call site: 00000 /src/sudo/lib/eventlog/./parse_json.c:184
0 38 2 :

['sudo_warnx_nodebug_v1', 'sudo_warn_gettext_v1']

0 40 new_json_item call site: 00046 /src/sudo/lib/eventlog/./parse_json.c:470
0 38 2 :

['sudo_warnx_nodebug_v1', 'sudo_warn_gettext_v1']

0 40 json_parse_string call site: 00067 /src/sudo/lib/eventlog/./parse_json.c:501
0 32 2 :

['sudo_warnx_nodebug_v1', 'sudo_warn_gettext_v1']

0 34 eventlog_json_parse call site: 00154 /src/sudo/lib/eventlog/./parse_json.c:615
0 0 None 22 1147 eventlog_json_read call site: 00093 /src/sudo/lib/eventlog/./parse_json.c:935
0 0 None 22 1147 eventlog_json_read call site: 00104 /src/sudo/lib/eventlog/./parse_json.c:957
0 0 None 22 1147 eventlog_json_read call site: 00111 /src/sudo/lib/eventlog/./parse_json.c:979
0 0 None 22 1147 eventlog_json_read call site: 00133 /src/sudo/lib/eventlog/./parse_json.c:1009
0 0 None 12 16 warning call site: 00027 /src/sudo/lib/util/./fatal.c:189
0 0 None 10 10 sudo_strtonumx call site: 00123 /src/sudo/lib/util/./strtonum.c:90

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 initprogname [function] [call site] 00001
2 initprogname2 [function] [call site] 00002
3 sudo_getprogname [function] [call site] 00003
3 sudo_basename_v1 [function] [call site] 00004
4 strrchr [call site] 00005
3 strcmp [call site] 00006
3 sudo_setprogname [function] [call site] 00007
4 sudo_basename_v1 [function] [call site] 00008
1 getenv [call site] 00009
1 sudo_warn_set_conversation_v1 [function] [call site] 00010
1 fuzz_conversation [function] [call site] 00011
1 open_data [function] [call site] 00012
2 fmemopen [call site] 00013
1 calloc [call site] 00014
1 iolog_parse_loginfo_json [function] [call site] 00015
2 sudo_debug_enter_v1 [function] [call site] 00016
2 eventlog_json_read [function] [call site] 00017
3 sudo_debug_enter_v1 [function] [call site] 00018
3 getdelim [call site] 00019
3 __ctype_b_loc [call site] 00020
3 __ctype_b_loc [call site] 00021
3 __ctype_b_loc [call site] 00022
3 sudo_warn_gettext_v1 [function] [call site] 00023
4 dgettext [call site] 00024
3 sudo_warnx_nodebug_v1 [function] [call site] 00025
4 warning [function] [call site] 00026
5 __errno_location [call site] 00027
5 sudo_getprogname [function] [call site] 00028
5 vsnprintf [call site] 00029
5 vsnprintf [call site] 00030
5 sudo_getprogname [function] [call site] 00031
5 fputs [call site] 00032
5 fputs [call site] 00033
5 vfprintf [call site] 00034
5 fputs [call site] 00035
5 fputs [call site] 00036
5 putc [call site] 00037
5 __errno_location [call site] 00038
3 sudo_warn_gettext_v1 [function] [call site] 00039
3 sudo_warnx_nodebug_v1 [function] [call site] 00040
3 json_stack_push [function] [call site] 00041
4 sudo_debug_enter_v1 [function] [call site] 00042
4 sudo_warn_gettext_v1 [function] [call site] 00043
4 sudo_debug_exit_ptr_v1 [function] [call site] 00044
4 new_json_item [function] [call site] 00045
5 sudo_debug_enter_v1 [function] [call site] 00046
5 sudo_warn_gettext_v1 [function] [call site] 00047
5 sudo_warn_gettext_v1 [function] [call site] 00048
5 sudo_debug_exit_ptr_v1 [function] [call site] 00049
5 sudo_debug_exit_ptr_v1 [function] [call site] 00050
4 sudo_debug_exit_ptr_v1 [function] [call site] 00051
4 sudo_debug_exit_ptr_v1 [function] [call site] 00052
3 sudo_warn_gettext_v1 [function] [call site] 00053
3 sudo_warnx_nodebug_v1 [function] [call site] 00054
3 sudo_warn_gettext_v1 [function] [call site] 00055
3 sudo_warnx_nodebug_v1 [function] [call site] 00056
3 sudo_warn_gettext_v1 [function] [call site] 00057
3 sudo_warnx_nodebug_v1 [function] [call site] 00058
3 json_stack_push [function] [call site] 00059
3 sudo_warn_gettext_v1 [function] [call site] 00060
3 sudo_warnx_nodebug_v1 [function] [call site] 00061
3 sudo_warn_gettext_v1 [function] [call site] 00062
3 sudo_warnx_nodebug_v1 [function] [call site] 00063
3 json_parse_string [function] [call site] 00064
4 sudo_debug_enter_v1 [function] [call site] 00065
4 sudo_warn_gettext_v1 [function] [call site] 00066
4 sudo_debug_exit_str_v1 [function] [call site] 00067
4 sudo_warn_gettext_v1 [function] [call site] 00068
4 sudo_debug_exit_str_v1 [function] [call site] 00069
4 sudo_hexchar_v1 [function] [call site] 00070
5 sudo_debug_enter_v1 [function] [call site] 00071
5 sudo_debug_exit_int_v1 [function] [call site] 00072
5 sudo_debug_exit_int_v1 [function] [call site] 00073
4 __ctype_b_loc [call site] 00074
4 sudo_debug_exit_str_v1 [function] [call site] 00075
3 sudo_warn_gettext_v1 [function] [call site] 00076
3 sudo_warnx_nodebug_v1 [function] [call site] 00077
3 sudo_warn_gettext_v1 [function] [call site] 00078
3 sudo_warnx_nodebug_v1 [function] [call site] 00079
3 json_insert_str [function] [call site] 00080
4 sudo_debug_enter_v1 [function] [call site] 00081
4 new_json_item [function] [call site] 00082
4 sudo_debug_exit_bool_v1 [function] [call site] 00083
4 json_parse_string [function] [call site] 00084
4 sudo_debug_exit_bool_v1 [function] [call site] 00085
4 sudo_debug_exit_bool_v1 [function] [call site] 00086
3 strncmp [call site] 00087
3 sudo_warn_gettext_v1 [function] [call site] 00088
3 sudo_warnx_nodebug_v1 [function] [call site] 00089
3 __ctype_b_loc [call site] 00090
3 sudo_warn_gettext_v1 [function] [call site] 00091
3 sudo_warnx_nodebug_v1 [function] [call site] 00092
3 json_insert_bool [function] [call site] 00093
4 sudo_debug_enter_v1 [function] [call site] 00094
4 new_json_item [function] [call site] 00095
4 sudo_debug_exit_bool_v1 [function] [call site] 00096
4 sudo_debug_exit_bool_v1 [function] [call site] 00097
3 strncmp [call site] 00098
3 sudo_warn_gettext_v1 [function] [call site] 00099
3 sudo_warnx_nodebug_v1 [function] [call site] 00100
3 __ctype_b_loc [call site] 00101
3 sudo_warn_gettext_v1 [function] [call site] 00102
3 sudo_warnx_nodebug_v1 [function] [call site] 00103
3 json_insert_bool [function] [call site] 00104
3 strncmp [call site] 00105
3 sudo_warn_gettext_v1 [function] [call site] 00106
3 sudo_warnx_nodebug_v1 [function] [call site] 00107
3 __ctype_b_loc [call site] 00108
3 sudo_warn_gettext_v1 [function] [call site] 00109
3 sudo_warnx_nodebug_v1 [function] [call site] 00110
3 json_insert_null [function] [call site] 00111
4 sudo_debug_enter_v1 [function] [call site] 00112
4 new_json_item [function] [call site] 00113
4 sudo_debug_exit_bool_v1 [function] [call site] 00114
4 sudo_debug_exit_bool_v1 [function] [call site] 00115
3 sudo_warn_gettext_v1 [function] [call site] 00116
3 sudo_warnx_nodebug_v1 [function] [call site] 00117
3 strcspn [call site] 00118
3 sudo_warn_gettext_v1 [function] [call site] 00119
3 sudo_warnx_nodebug_v1 [function] [call site] 00120
3 sudo_strtonum [function] [call site] 00121
4 sudo_strtonumx [function] [call site] 00122
5 __ctype_b_loc [call site] 00123
5 __ctype_b_loc [call site] 00124
5 __ctype_b_loc [call site] 00125
5 __ctype_b_loc [call site] 00126
5 __ctype_b_loc [call site] 00127
5 __errno_location [call site] 00128
5 __errno_location [call site] 00129
5 __errno_location [call site] 00130
3 sudo_warn_gettext_v1 [function] [call site] 00131
3 sudo_warnx_nodebug_v1 [function] [call site] 00132
3 json_insert_num [function] [call site] 00133
4 sudo_debug_enter_v1 [function] [call site] 00134
4 new_json_item [function] [call site] 00135
4 sudo_debug_exit_bool_v1 [function] [call site] 00136
4 sudo_debug_exit_bool_v1 [function] [call site] 00137
3 sudo_warn_gettext_v1 [function] [call site] 00138
3 sudo_warnx_nodebug_v1 [function] [call site] 00139
3 sudo_warn_gettext_v1 [function] [call site] 00140
3 sudo_warnx_nodebug_v1 [function] [call site] 00141
3 sudo_warn_gettext_v1 [function] [call site] 00142
3 eventlog_json_free [function] [call site] 00143
4 sudo_debug_enter_v1 [function] [call site] 00144
4 free_json_items [function] [call site] 00145
5 sudo_debug_enter_v1 [function] [call site] 00146
5 free_json_items [function] [call site] 00147
6 sudo_warnx_nodebug_v1 [function] [call site] 00148
6 sudo_debug_exit_v1 [function] [call site] 00149
4 sudo_debug_exit_v1 [function] [call site] 00150
3 sudo_debug_exit_ptr_v1 [function] [call site] 00151
2 eventlog_json_parse [function] [call site] 00152
3 sudo_debug_enter_v1 [function] [call site] 00153
3 sudo_warn_gettext_v1 [function] [call site] 00154
3 sudo_warn_gettext_v1 [function] [call site] 00155
3 sudo_debug_printf2_v1 [function] [call site] 00156
3 strcmp [call site] 00157
3 sudo_debug_printf2_v1 [function] [call site] 00158
3 sudo_debug_printf2_v1 [function] [call site] 00159
3 sudo_debug_printf2_v1 [function] [call site] 00160
3 strlen [call site] 00161
3 strlen [call site] 00162
3 strcmp [call site] 00163
3 sudo_debug_exit_bool_v1 [function] [call site] 00164
2 eventlog_json_free [function] [call site] 00165
2 sudo_debug_exit_bool_v1 [function] [call site] 00166
1 eventlog_free [function] [call site] 00167
2 sudo_debug_enter_v1 [function] [call site] 00168
2 sudo_debug_exit_v1 [function] [call site] 00169
1 fclose [call site] 00170
1 fflush [call site] 00171