Fuzz introspector: datetime_strptime_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
46 8309 8 :

['strlen', 'strlcpy', 'first_wday_of', '__ctype_b_loc', 'timezone_tm_lookup', 'tnt_strptime', 'strncasecmp', 'strtol']

46 8309 tnt_strptime call site: 00008 /src/tarantool/src/lib/tzcode/strptime.c:150
46 8309 8 :

['strlen', 'strlcpy', 'first_wday_of', '__ctype_b_loc', 'timezone_tm_lookup', 'tnt_strptime', 'strncasecmp', 'strtol']

46 8309 tnt_strptime call site: 00008 /src/tarantool/src/lib/tzcode/strptime.c:169
25 25 1 :

['gmtsub']

25 25 localsub call site: 00147 /src/tarantool/src/lib/tzcode/localtime.c:1431
3 3 1 :

['getqzname']

3 150 tzparse call site: 00090 /src/tarantool/src/lib/tzcode/localtime.c:1106
2 2 1 :

['__errno_location']

2 2 tzloadbody call site: 00068 /src/tarantool/src/lib/tzcode/localtime.c:398
2 2 1 :

['update_tzname_etc']

2 2 localsub call site: 00156 /src/tarantool/src/lib/tzcode/localtime.c:1504
0 289 1 :

['tzload']

3 447 tzparse call site: 00085 /src/tarantool/src/lib/tzcode/localtime.c:1092
0 56 1 :

['mh_strnptr_put']

0 56 mh_strnptr_put call site: 00000 /src/tarantool/src/lib/salad/mhash.h:319
0 12 1 :

['getnum']

0 12 getsecs call site: 00087 /src/tarantool/src/lib/tzcode/localtime.c:860
0 0 None 30 467 tzloadbody call site: 00058 /src/tarantool/src/lib/tzcode/localtime.c:346
0 0 None 30 467 tzloadbody call site: 00058 /src/tarantool/src/lib/tzcode/localtime.c:352
0 0 None 8 439 tzloadbody call site: 00078 /src/tarantool/src/lib/tzcode/localtime.c:489

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 datetime_strptime [function] [call site] 00001
2 __assert_fail [call site] 00002
2 __assert_fail [call site] 00003
2 __assert_fail [call site] 00004
2 tnt_strptime [function] [call site] 00005
3 __ctype_b_loc [call site] 00006
3 __ctype_b_loc [call site] 00007
3 tnt_strptime [function] [call site] 00008
4 tnt_strptime [function] [call site] 00009
5 tnt_strptime [function] [call site] 00010
6 tnt_strptime [function] [call site] 00011
7 tnt_strptime [function] [call site] 00012
8 tnt_strptime [function] [call site] 00013
9 tnt_strptime [function] [call site] 00014
10 tnt_strptime [function] [call site] 00015
11 tnt_strptime [function] [call site] 00016
12 tnt_strptime [function] [call site] 00017
13 __ctype_b_loc [call site] 00018
13 __ctype_b_loc [call site] 00019
13 strlen [call site] 00020
13 strncasecmp [call site] 00021
13 strlen [call site] 00022
13 strncasecmp [call site] 00023
13 strlen [call site] 00024
13 strncasecmp [call site] 00025
13 strlen [call site] 00026
13 strncasecmp [call site] 00027
13 __ctype_b_loc [call site] 00028
13 strlen [call site] 00029
13 strncasecmp [call site] 00030
13 strlen [call site] 00031
13 strncasecmp [call site] 00032
13 strlen [call site] 00033
13 strncasecmp [call site] 00034
13 strtol [call site] 00035
13 __ctype_b_loc [call site] 00036
13 __ctype_b_loc [call site] 00037
13 strlcpy [function] [call site] 00038
14 strlen [call site] 00039
13 timezone_tm_lookup [function] [call site] 00040
14 timezone_raw_lookup [function] [call site] 00041
15 char_span_alpha [function] [call site] 00042
16 __ctype_b_loc [call site] 00043
16 __ctype_b_loc [call site] 00044
15 bsearch [call site] 00045
15 compare_zones [function] [call site] 00046
16 strcasecmp [call site] 00047
15 __assert_fail [call site] 00048
14 timezone_alloc [function] [call site] 00049
15 __assert_fail [call site] 00050
15 strcmp [call site] 00051
15 tzalloc [function] [call site] 00053
16 zoneinit [function] [call site] 00054
17 init_ttinfo [function] [call site] 00055
17 tzload [function] [call site] 00057
18 tzloadbody [function] [call site] 00058
19 strlen [call site] 00059
19 access [call site] 00061
19 __errno_location [call site] 00062
19 open64 [call site] 00063
19 __errno_location [call site] 00064
19 read [call site] 00065
19 __errno_location [call site] 00066
19 close [call site] 00067
19 close [call site] 00068
19 __errno_location [call site] 00069
19 detzcode [function] [call site] 00070
19 detzcode [function] [call site] 00071
19 detzcode [function] [call site] 00072
19 detzcode [function] [call site] 00073
19 detzcode [function] [call site] 00074
19 detzcode [function] [call site] 00075
19 detzcode [function] [call site] 00076
19 detzcode64 [function] [call site] 00077
19 detzcode [function] [call site] 00078
19 detzcode [function] [call site] 00079
19 detzcode64 [function] [call site] 00080
19 detzcode [function] [call site] 00081
19 tzparse [function] [call site] 00082
20 getqzname [function] [call site] 00083
20 getzname [function] [call site] 00084
20 getqzname [function] [call site] 00091
20 getzname [function] [call site] 00092
20 getoffset [function] [call site] 00093
20 init_ttinfo [function] [call site] 00102
20 init_ttinfo [function] [call site] 00103
20 increment_overflow_time [function] [call site] 00104
20 increment_overflow_time [function] [call site] 00105
20 increment_overflow [function] [call site] 00106
20 increment_overflow [function] [call site] 00107
20 transtime [function] [call site] 00108
20 transtime [function] [call site] 00109
20 increment_overflow_time [function] [call site] 00110
20 increment_overflow_time [function] [call site] 00111
20 increment_overflow [function] [call site] 00112
20 increment_overflow_time [function] [call site] 00113
20 init_ttinfo [function] [call site] 00114
20 init_ttinfo [function] [call site] 00115
20 init_ttinfo [function] [call site] 00116
19 strcmp [call site] 00117
19 strlen [call site] 00118
19 leapcorr [function] [call site] 00120
19 increment_overflow_time [function] [call site] 00121
19 typesequiv [function] [call site] 00122
20 strcmp [call site] 00123
19 typesequiv [function] [call site] 00124
19 ttunspecified [function] [call site] 00125
20 memcmp [call site] 00126
17 scrub_abbrs [function] [call site] 00128
18 strchr [call site] 00129
18 strlen [call site] 00130
18 strcmp [call site] 00131
16 __errno_location [call site] 00132
15 strlen [call site] 00133
14 tm_to_datetime [function] [call site] 00135
15 __assert_fail [call site] 00136
15 __assert_fail [call site] 00137
15 tnt_dt_from_ymd_checked [function] [call site] 00138
16 tnt_dt_days_in_month [function] [call site] 00139
17 tnt_dt_leap_year [function] [call site] 00140
16 dt_from_yd_checked [function] [call site] 00141
17 dt64_from_yd [function] [call site] 00142
18 tnt_dt_days_in_year [function] [call site] 00143
19 tnt_dt_leap_year [function] [call site] 00144
17 __assert_fail [call site] 00145
14 tnt_localtime_rz [function] [call site] 00146
15 localsub [function] [call site] 00147
16 gmtsub [function] [call site] 00148
17 timesub [function] [call site] 00149
18 leaps_thru_end_of [function] [call site] 00150
19 leaps_thru_end_of_nonneg [function] [call site] 00151
19 leaps_thru_end_of_nonneg [function] [call site] 00152
18 __errno_location [call site] 00153
18 leaps_thru_end_of [function] [call site] 00154
18 leaps_thru_end_of [function] [call site] 00155
16 localsub [function] [call site] 00156
17 update_tzname_etc [function] [call site] 00158
13 __ctype_b_loc [call site] 00159
13 first_wday_of [function] [call site] 00160
13 first_wday_of [function] [call site] 00161
2 tm_to_datetime [function] [call site] 00162