Fuzz introspector: fuzz_textfile
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
2 2 1 :

['__errno_location']

2 2 write_key_value call site: 00021 /src/bluez/src/textfile.c:174
0 0 None 20 32 write_key call site: 00045 /src/bluez/src/textfile.c:289
0 0 None 14 14 find_key call site: 00028 /src/bluez/src/textfile.c:138
0 0 None 10 10 write_key call site: 00015 /src/bluez/src/textfile.c:221
0 0 None 10 10 write_key call site: 00023 /src/bluez/src/textfile.c:238
0 0 None 10 10 write_key call site: 00042 /src/bluez/src/textfile.c:272
0 0 None 10 10 write_key call site: 00045 /src/bluez/src/textfile.c:283
0 0 None 10 10 write_key call site: 00048 /src/bluez/src/textfile.c:297
0 0 None 10 10 write_key call site: 00052 /src/bluez/src/textfile.c:306
0 0 None 8 8 write_key call site: 00013 /src/bluez/src/textfile.c:216
0 0 None 8 8 read_key call site: 00064 /src/bluez/src/textfile.c:344
0 0 None 8 8 read_key call site: 00066 /src/bluez/src/textfile.c:352

Fuzzer calltree

0 LLVMFuzzerTestOneInput [function] [call site] 00000
1 get_null_terminated [function] [call site] 00001
1 get_null_terminated [function] [call site] 00002
1 get_null_terminated [function] [call site] 00003
1 getpid [call site] 00004
1 sprintf [call site] 00005
1 fopen [call site] 00006
1 fwrite [call site] 00007
1 fclose [call site] 00008
1 textfile_put [function] [call site] 00009
2 write_key [function] [call site] 00010
3 open [call site] 00011
3 __errno_location [call site] 00012
3 flock [call site] 00013
3 __errno_location [call site] 00014
3 fstat [call site] 00015
3 __errno_location [call site] 00016
3 lseek [call site] 00017
3 write_key_value [function] [call site] 00018
4 strlen [call site] 00019
4 sprintf [call site] 00020
4 write [call site] 00021
4 __errno_location [call site] 00022
3 mmap [call site] 00023
3 __errno_location [call site] 00024
3 strlen [call site] 00025
3 find_key [function] [call site] 00026
4 strncasecmp [call site] 00027
4 strncmp [call site] 00028
4 tolower [call site] 00029
4 memchr [call site] 00030
4 toupper [call site] 00031
4 memchr [call site] 00032
4 memchr [call site] 00033
3 munmap [call site] 00034
3 lseek [call site] 00035
3 write_key_value [function] [call site] 00036
3 strlen [call site] 00038
3 strncmp [call site] 00039
3 strspn [call site] 00040
3 munmap [call site] 00041
3 ftruncate [call site] 00042
3 __errno_location [call site] 00043
3 lseek [call site] 00044
3 write_key_value [function] [call site] 00045
3 __errno_location [call site] 00046
3 munmap [call site] 00047
3 ftruncate [call site] 00048
3 __errno_location [call site] 00049
3 lseek [call site] 00050
3 write_key_value [function] [call site] 00051
3 write [call site] 00052
3 __errno_location [call site] 00053
3 munmap [call site] 00054
3 flock [call site] 00055
3 fdatasync [call site] 00056
3 close [call site] 00057
3 __errno_location [call site] 00058
1 textfile_get [function] [call site] 00059
2 read_key [function] [call site] 00060
3 open [call site] 00061
3 flock [call site] 00062
3 __errno_location [call site] 00063
3 fstat [call site] 00064
3 __errno_location [call site] 00065
3 mmap [call site] 00066
3 __errno_location [call site] 00067
3 strlen [call site] 00068
3 strncpy [call site] 00071
3 munmap [call site] 00072
3 flock [call site] 00073
3 close [call site] 00074
3 __errno_location [call site] 00075
1 unlink [call site] 00076