Fuzz introspector: authopt_fuzz
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
166 757 4 :

['free', 'xstrdup', 'a2tun', 'strchr']

166 757 a2tun call site: 00082 /src/openssh/misc.c:510
2 2 1 :

['getpagesize']

8 8 recallocarray call site: 00051 /src/openssh/openbsd-compat/recallocarray.c:64
2 2 1 :

['ntohs']

2 2 a2port call site: 00075 /src/openssh/misc.c:498
0 11 1 :

['sshauthopt_free']

0 11 sshauthopt_merge call site: 00146 /src/openssh/auth-options.c:631
0 0 None 12 94 sshauthopt_merge call site: 00132 /src/openssh/auth-options.c:537
0 0 None 8 19 sshauthopt_merge call site: 00143 /src/openssh/auth-options.c:610
0 0 None 6 673 sshauthopt_parse call site: 00003 /src/openssh/auth-options.c:329
0 0 None 2 2 recallocarray call site: 00053 /src/openssh/openbsd-compat/recallocarray.c:77
0 0 None 2 2 strtonum call site: 00071 /src/openssh/openbsd-compat/strtonum.c:52
0 0 None 0 11 sshauthopt_parse call site: 00004 /src/openssh/auth-options.c:331
0 0 None 0 11 sshauthopt_parse call site: 00041 /src/openssh/auth-options.c:401
0 0 None 0 11 sshauthopt_parse call site: 00044 /src/openssh/auth-options.c:413

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 sshauthopt_new [function] [call site] 00001
2 calloc [call site] 00002
1 sshauthopt_parse [function] [call site] 00003
2 sshauthopt_new_with_keys_defaults [function] [call site] 00004
3 sshauthopt_new [function] [call site] 00005
2 opt_flag [function] [call site] 00006
3 strlen [call site] 00007
3 strncasecmp [call site] 00008
3 strncasecmp [call site] 00009
2 opt_match [function] [call site] 00018
3 strlen [call site] 00019
3 strlen [call site] 00020
3 strlen [call site] 00021
2 opt_dequote [function] [call site] 00022
3 strlen [call site] 00023
2 opt_match [function] [call site] 00024
2 opt_dequote [function] [call site] 00025
2 opt_match [function] [call site] 00026
2 opt_dequote [function] [call site] 00027
2 opt_match [function] [call site] 00028
2 opt_dequote [function] [call site] 00029
2 parse_absolute_time [function] [call site] 00030
3 strlen [call site] 00031
3 strcasecmp [call site] 00032
3 strcasecmp [call site] 00033
3 snprintf [call site] 00034
3 snprintf [call site] 00035
3 snprintf [call site] 00036
3 memset [call site] 00037
3 strptime [call site] 00038
3 timegm [call site] 00039
3 mktime [call site] 00040
2 opt_match [function] [call site] 00041
2 opt_dequote [function] [call site] 00042
2 strchr [call site] 00043
2 strdup [call site] 00044
2 valid_env_name [function] [call site] 00045
3 __ctype_b_loc [call site] 00046
2 strncmp [call site] 00047
2 recallocarray [function] [call site] 00048
3 calloc [call site] 00049
3 __errno_location [call site] 00050
3 __errno_location [call site] 00051
3 getpagesize [call site] 00052
3 memset [call site] 00053
3 memset [call site] 00054
3 explicit_bzero [call site] 00055
2 opt_match [function] [call site] 00056
2 handle_permit [function] [call site] 00057
3 opt_dequote [function] [call site] 00058
3 strchr [call site] 00059
3 asprintf [call site] 00060
3 strdup [call site] 00061
3 hpdelim2 [function] [call site] 00062
4 strchr [call site] 00063
4 strpbrk [call site] 00064
4 strlen [call site] 00065
3 strlen [call site] 00066
3 strcmp [call site] 00067
3 a2port [function] [call site] 00068
4 strtonum [function] [call site] 00069
5 __errno_location [call site] 00070
5 __errno_location [call site] 00071
5 __errno_location [call site] 00072
5 __errno_location [call site] 00073
5 __errno_location [call site] 00074
4 getservbyname [call site] 00075
4 ntohs [call site] 00076
3 recallocarray [function] [call site] 00077
2 opt_match [function] [call site] 00078
2 handle_permit [function] [call site] 00079
2 opt_match [function] [call site] 00080
2 opt_dequote [function] [call site] 00081
2 a2tun [function] [call site] 00082
3 xstrdup [function] [call site] 00083
4 strlen [call site] 00084
4 xmalloc [function] [call site] 00085
5 sshfatal [function] [call site] 00086
6 sshlogv [function] [call site] 00087
7 strrchr [call site] 00088
7 getpid [call site] 00089
7 snprintf [call site] 00090
7 match_pattern_list [function] [call site] 00091
8 strlen [call site] 00092
8 __ctype_b_loc [call site] 00093
8 tolower [call site] 00094
8 match_pattern [function] [call site] 00095
9 match_pattern [function] [call site] 00096
10 match_pattern [function] [call site] 00097
7 snprintf [call site] 00098
7 snprintf [call site] 00099
7 do_log [function] [call site] 00101
8 __errno_location [call site] 00102
8 snprintf [call site] 00103
8 vsnprintf [call site] 00104
8 vsnprintf [call site] 00105
8 snprintf [call site] 00106
8 strnvis [function] [call site] 00108
9 __ctype_b_loc [call site] 00109
9 vis [function] [call site] 00110
10 __ctype_b_loc [call site] 00111
10 __ctype_b_loc [call site] 00112
8 snprintf [call site] 00114
8 strlen [call site] 00115
8 openlog [call site] 00116
8 syslog [call site] 00117
8 closelog [call site] 00118
8 __errno_location [call site] 00119
6 cleanup_exit [function] [call site] 00120
7 _exit [call site] 00121
3 strchr [call site] 00123
2 sshauthopt_free [function] [call site] 00129
3 freezero [function] [call site] 00130
4 explicit_bzero [call site] 00131
1 sshauthopt_merge [function] [call site] 00132
2 sshauthopt_new [function] [call site] 00133
2 strdup [call site] 00134
2 strdup [call site] 00135
2 dup_strings [function] [call site] 00136
3 calloc [call site] 00137
3 strdup [call site] 00138
2 dup_strings [function] [call site] 00139
2 dup_strings [function] [call site] 00140
2 dup_strings [function] [call site] 00141
2 dup_strings [function] [call site] 00142
2 dup_strings [function] [call site] 00143
2 strcmp [call site] 00144
2 strdup [call site] 00145
2 strdup [call site] 00146
2 strdup [call site] 00147
2 sshauthopt_free [function] [call site] 00148
1 sshauthopt_free [function] [call site] 00149
1 sshauthopt_free [function] [call site] 00150
1 sshauthopt_free [function] [call site] 00151