Fuzz introspector: fuzz_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
4 4 3 :

['explicit_bzero', 'free', 'strlen']

4 39 k5_buf_add_vfmt call site: 00116 /src/krb5/src/util/support/k5buf.c:192
2 2 1 :

['explicit_bzero']

2 4 k5_buf_free call site: 00121 /src/krb5/src/util/support/k5buf.c:271
2 2 1 :

['abort']

2 2 k5_json_array_get call site: 00094 /src/krb5/src/util/support/json.c:259
0 2 1 :

['set_error']

0 4 k5_buf_add_vfmt call site: 00110 /src/krb5/src/util/support/k5buf.c:172
0 2 1 :

['set_error']

0 2 k5_buf_init_dynamic call site: 00077 /src/krb5/src/util/support/k5buf.c:129
0 0 1 :

['malloc']

4 6 ensure_space call site: 00086 /src/krb5/src/util/support/k5buf.c:87
0 0 None 2 4 ensure_space call site: 00085 /src/krb5/src/util/support/k5buf.c:78
0 0 None 2 4 ensure_space call site: 00086 /src/krb5/src/util/support/k5buf.c:83
0 0 None 0 13 k5_buf_add_vfmt call site: 00117 /src/krb5/src/util/support/k5buf.c:194
0 0 None 0 2 k5_buf_add_len call site: 00085 /src/krb5/src/util/support/k5buf.c:153
0 0 None 0 2 k5_buf_cstring call site: 00143 /src/krb5/src/util/support/k5buf.c:235
0 0 None 0 0 k5_json_bool_create call site: 00048 /src/krb5/src/util/support/json.c:186

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 k5memdup0 [function] [call site] 00001
2 k5alloc [function] [call site] 00002
3 k5calloc [function] [call site] 00003
4 calloc [call site] 00004
1 k5_json_decode [function] [call site] 00005
2 parse_value [function] [call site] 00006
3 white_spaces [function] [call site] 00007
3 parse_string [function] [call site] 00008
4 is_hex_digit [function] [call site] 00009
4 is_hex_digit [function] [call site] 00011
4 hexval [function] [call site] 00012
5 abort [call site] 00014
4 strchr [call site] 00016
3 k5_json_string_create [function] [call site] 00017
4 strlen [call site] 00018
4 k5_json_string_create_len [function] [call site] 00019
5 alloc_value [function] [call site] 00020
6 calloc [call site] 00021
3 parse_object [function] [call site] 00022
4 white_spaces [function] [call site] 00023
4 k5_json_object_create [function] [call site] 00024
5 alloc_value [function] [call site] 00025
4 parse_object_association [function] [call site] 00026
5 parse_string [function] [call site] 00027
5 white_spaces [function] [call site] 00028
5 white_spaces [function] [call site] 00029
5 parse_value [function] [call site] 00030
6 parse_array [function] [call site] 00031
7 white_spaces [function] [call site] 00032
7 k5_json_array_create [function] [call site] 00033
8 alloc_value [function] [call site] 00034
7 parse_array_item [function] [call site] 00035
8 parse_value [function] [call site] 00036
9 parse_number [function] [call site] 00038
10 is_digit [function] [call site] 00039
10 is_digit [function] [call site] 00040
10 k5_json_number_create [function] [call site] 00041
11 alloc_value [function] [call site] 00042
9 strncmp [call site] 00043
9 k5_json_null_create [function] [call site] 00044
10 alloc_value [function] [call site] 00045
9 strncmp [call site] 00046
9 k5_json_bool_create [function] [call site] 00047
10 alloc_value [function] [call site] 00048
9 strncmp [call site] 00049
9 k5_json_bool_create [function] [call site] 00050
8 k5_json_array_add [function] [call site] 00051
9 realloc [call site] 00052
9 k5_json_retain [function] [call site] 00053
10 __assert_fail [call site] 00054
8 k5_json_release [function] [call site] 00055
9 __assert_fail [call site] 00056
7 k5_json_release [function] [call site] 00057
7 white_spaces [function] [call site] 00058
7 white_spaces [function] [call site] 00059
7 k5_json_release [function] [call site] 00060
5 k5_json_object_set [function] [call site] 00061
6 object_search [function] [call site] 00062
7 strcmp [call site] 00063
6 k5_json_release [function] [call site] 00064
6 k5_json_retain [function] [call site] 00065
6 realloc [call site] 00066
6 strdup [call site] 00067
6 k5_json_retain [function] [call site] 00068
5 k5_json_release [function] [call site] 00069
4 k5_json_release [function] [call site] 00070
4 white_spaces [function] [call site] 00071
4 white_spaces [function] [call site] 00072
4 k5_json_release [function] [call site] 00073
2 white_spaces [function] [call site] 00074
2 k5_json_release [function] [call site] 00075
1 k5_json_encode [function] [call site] 00076
2 k5_buf_init_dynamic [function] [call site] 00077
3 set_error [function] [call site] 00078
2 encode_value [function] [call site] 00079
3 k5_json_get_tid [function] [call site] 00080
3 k5_buf_add [function] [call site] 00082
4 strlen [call site] 00083
4 k5_buf_add_len [function] [call site] 00084
5 ensure_space [function] [call site] 00085
6 __assert_fail [call site] 00086
6 explicit_bzero [call site] 00087
6 realloc [call site] 00088
6 explicit_bzero [call site] 00089
6 set_error [function] [call site] 00090
3 k5_json_array_length [function] [call site] 00092
3 k5_buf_add [function] [call site] 00093
3 k5_json_array_get [function] [call site] 00094
4 abort [call site] 00095
3 encode_value [function] [call site] 00096
4 k5_buf_add [function] [call site] 00097
4 k5_buf_add [function] [call site] 00098
4 k5_json_object_iterate [function] [call site] 00099
4 encode_obj_entry [function] [call site] 00100
5 k5_buf_add [function] [call site] 00101
5 encode_string [function] [call site] 00102
6 k5_buf_add [function] [call site] 00103
6 strcspn [call site] 00104
6 k5_buf_add_len [function] [call site] 00105
6 k5_buf_add [function] [call site] 00106
6 strchr [call site] 00107
6 k5_buf_add_len [function] [call site] 00108
6 k5_buf_add_fmt [function] [call site] 00109
7 k5_buf_add_vfmt [function] [call site] 00110
8 vsnprintf [call site] 00112
8 set_error [function] [call site] 00113
8 __assert_fail [call site] 00114
8 vsnprintf [call site] 00116
8 ensure_space [function] [call site] 00117
8 vsnprintf [call site] 00119
8 k5_buf_free [function] [call site] 00120
9 __assert_fail [call site] 00121
9 explicit_bzero [call site] 00122
9 set_error [function] [call site] 00123
8 vasprintf [call site] 00124
8 k5_buf_free [function] [call site] 00125
8 ensure_space [function] [call site] 00126
8 strlen [call site] 00128
8 explicit_bzero [call site] 00129
6 k5_buf_add [function] [call site] 00130
5 k5_buf_add [function] [call site] 00131
5 encode_value [function] [call site] 00132
6 k5_buf_add [function] [call site] 00133
6 k5_json_string_utf8 [function] [call site] 00134
6 encode_string [function] [call site] 00135
6 k5_json_number_value [function] [call site] 00136
6 k5_buf_add_fmt [function] [call site] 00137
6 k5_buf_add [function] [call site] 00138
6 k5_json_bool_value [function] [call site] 00139
6 k5_buf_add [function] [call site] 00140
2 k5_buf_free [function] [call site] 00141
2 k5_buf_cstring [function] [call site] 00142
1 k5_json_release [function] [call site] 00145