Fuzz introspector: test_last_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
14 14 1 :

['dns_lookup']

16 195 list call site: 00080 /src/util-linux/login-utils/last.c:513
8 8 2 :

['strcmp', 'strncmp']

44 351 list call site: 00035 /src/util-linux/login-utils/last.c:411
4 4 2 :

['warn', 'gettext']

4 4 uread call site: 00022 /src/util-linux/login-utils/last.c:214
4 4 2 :

['warn', 'gettext']

4 4 uread call site: 00026 /src/util-linux/login-utils/last.c:251
4 4 2 :

['gettext', 'errx']

4 4 list call site: 00064 /src/util-linux/login-utils/last.c:448
2 2 1 :

['err']

4 4 process_wtmp_file call site: 00028 /src/util-linux/login-utils/last.c:696
2 2 1 :

['errx']

4 4 process_wtmp_file call site: 00139 /src/util-linux/login-utils/last.c:899
2 2 1 :

['putchar']

2 2 list call site: 00090 /src/util-linux/login-utils/last.c:552
0 0 None 36 343 list call site: 00039 /src/util-linux/login-utils/last.c:429
0 0 None 32 2209 process_wtmp_file call site: 00031 /src/util-linux/login-utils/last.c:716
0 0 None 32 2209 process_wtmp_file call site: 00031 /src/util-linux/login-utils/last.c:719
0 0 None 32 2209 process_wtmp_file call site: 00031 /src/util-linux/login-utils/last.c:724

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 mkstemp_cloexec [function] [call site] 00001
2 mkostemp [call site] 00002
1 err [call site] 00003
1 write_all [function] [call site] 00004
2 __errno_location [call site] 00005
2 write [call site] 00006
2 __errno_location [call site] 00007
2 __errno_location [call site] 00008
2 xusleep [function] [call site] 00009
3 nanosleep [call site] 00010
1 err [call site] 00011
1 process_wtmp_file [function] [call site] 00012
2 fopen [call site] 00013
2 gettext [call site] 00014
2 setvbuf [call site] 00015
2 uread [function] [call site] 00016
3 fread [call site] 00017
3 fseeko [call site] 00018
3 ftello [call site] 00019
3 fseeko [call site] 00020
3 gettext [call site] 00021
3 fread [call site] 00022
3 gettext [call site] 00023
3 fseeko [call site] 00024
3 gettext [call site] 00025
3 fread [call site] 00026
3 gettext [call site] 00027
2 fileno [call site] 00028
2 gettext [call site] 00029
2 list [function] [call site] 00032
3 mem2strcpy [function] [call site] 00033
3 strncmp [call site] 00034
3 strncmp [call site] 00035
3 strncmp [call site] 00036
3 strcmp [call site] 00037
3 strncmp [call site] 00038
3 strcmp [call site] 00039
3 time_formatter [function] [call site] 00040
4 localtime_r [call site] 00041
4 snprintf [call site] 00042
4 ctime_r [call site] 00043
4 snprintf [call site] 00044
4 rtrim_whitespace [function] [call site] 00045
5 strlen [call site] 00046
5 __ctype_b_loc [call site] 00047
4 strtime_iso [function] [call site] 00048
5 gmtime_r [call site] 00049
5 localtime_r [call site] 00050
5 format_iso_time [function] [call site] 00051
6 snprintf [call site] 00052
6 snprintf [call site] 00053
6 snprintf [call site] 00054
6 snprintf [call site] 00055
6 get_gmtoff [function] [call site] 00056
6 abs [call site] 00057
6 snprintf [call site] 00058
6 gettext [call site] 00059
5 gettext [call site] 00060
4 abort [call site] 00061
3 gettext [call site] 00062
3 strcpy [call site] 00063
3 time_formatter [function] [call site] 00064
3 gettext [call site] 00065
3 snprintf [call site] 00066
3 snprintf [call site] 00067
3 snprintf [call site] 00068
3 abs [call site] 00069
3 snprintf [call site] 00070
3 abs [call site] 00071
3 snprintf [call site] 00072
3 snprintf [call site] 00073
3 snprintf [call site] 00074
3 snprintf [call site] 00075
3 snprintf [call site] 00076
3 snprintf [call site] 00077
3 snprintf [call site] 00078
3 snprintf [call site] 00079
3 snprintf [call site] 00080
3 dns_lookup [function] [call site] 00081
4 htonl [call site] 00082
4 getnameinfo [call site] 00083
3 mem2strcpy [function] [call site] 00084
3 snprintf [call site] 00085
3 snprintf [call site] 00086
3 snprintf [call site] 00087
3 trim_trailing_spaces [function] [call site] 00088
4 __ctype_b_loc [call site] 00089
3 fputs_careful [function] [call site] 00090
4 strlen [call site] 00091
4 fprintf [call site] 00092
4 fputs [call site] 00093
4 __ctype_b_loc [call site] 00094
4 putc [call site] 00095
4 c_isascii [function] [call site] 00096
4 mbtowc [call site] 00097
4 mbtowc [call site] 00098
4 fprintf [call site] 00099
4 iswprint [call site] 00100
4 fwrite [call site] 00101
4 wcwidth [call site] 00102
4 fputs [call site] 00103
3 putchar [call site] 00104
2 strncmp [call site] 00105
2 strncmp [call site] 00106
2 strncmp [call site] 00107
2 strncmp [call site] 00108
2 strncmp [call site] 00109
2 strncmp [call site] 00110
2 strcpy [call site] 00111
2 strcpy [call site] 00113
2 strcpy [call site] 00115
2 snprintf [call site] 00117
2 strncmp [call site] 00119
2 is_phantom [function] [call site] 00121
3 mem2strcpy [function] [call site] 00122
3 getpwnam [call site] 00123
3 snprintf [call site] 00124
3 access [call site] 00125
3 fopen [call site] 00126
3 __isoc99_fscanf [call site] 00127
3 fclose [call site] 00128
3 mem2strcpy [function] [call site] 00129
3 snprintf [call site] 00130
3 stat [call site] 00131
2 warnx [call site] 00134
2 xstrdup [function] [call site] 00135
3 __assert_fail [call site] 00136
3 strdup [call site] 00137
3 err [call site] 00138
2 time_formatter [function] [call site] 00139
2 gettext [call site] 00140
2 gettext [call site] 00141
2 fclose [call site] 00142
1 close [call site] 00143
1 unlink [call site] 00144