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: 00020 /src/bluez/src/textfile.c:173
0 0 None 20 32 write_key call site: 00041 /src/bluez/src/textfile.c:288
0 0 None 14 14 find_key call site: 00026 /src/bluez/src/textfile.c:137
0 0 None 10 10 write_key call site: 00014 /src/bluez/src/textfile.c:220
0 0 None 10 10 write_key call site: 00022 /src/bluez/src/textfile.c:237
0 0 None 10 10 write_key call site: 00038 /src/bluez/src/textfile.c:271
0 0 None 10 10 write_key call site: 00041 /src/bluez/src/textfile.c:282
0 0 None 10 10 write_key call site: 00044 /src/bluez/src/textfile.c:296
0 0 None 10 10 write_key call site: 00048 /src/bluez/src/textfile.c:305
0 0 None 8 8 write_key call site: 00012 /src/bluez/src/textfile.c:215
0 0 None 8 8 read_key call site: 00060 /src/bluez/src/textfile.c:343
0 0 None 8 8 read_key call site: 00062 /src/bluez/src/textfile.c:351

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 fopen [call site] 00005
1 fwrite [call site] 00006
1 fclose [call site] 00007
1 textfile_put [function] [call site] 00008
2 write_key [function] [call site] 00009
3 open [call site] 00010
3 __errno_location [call site] 00011
3 flock [call site] 00012
3 __errno_location [call site] 00013
3 fstat [call site] 00014
3 __errno_location [call site] 00015
3 lseek [call site] 00016
3 write_key_value [function] [call site] 00017
4 strlen [call site] 00018
4 sprintf [call site] 00019
4 write [call site] 00020
4 __errno_location [call site] 00021
3 mmap [call site] 00022
3 __errno_location [call site] 00023
3 strlen [call site] 00024
3 find_key [function] [call site] 00025
4 strncasecmp [call site] 00026
4 tolower [call site] 00027
4 toupper [call site] 00028
4 memchr [call site] 00029
3 munmap [call site] 00030
3 lseek [call site] 00031
3 write_key_value [function] [call site] 00032
3 strlen [call site] 00034
3 strncmp [call site] 00035
3 strspn [call site] 00036
3 munmap [call site] 00037
3 ftruncate [call site] 00038
3 __errno_location [call site] 00039
3 lseek [call site] 00040
3 write_key_value [function] [call site] 00041
3 __errno_location [call site] 00042
3 munmap [call site] 00043
3 ftruncate [call site] 00044
3 __errno_location [call site] 00045
3 lseek [call site] 00046
3 write_key_value [function] [call site] 00047
3 write [call site] 00048
3 __errno_location [call site] 00049
3 munmap [call site] 00050
3 flock [call site] 00051
3 fdatasync [call site] 00052
3 close [call site] 00053
3 __errno_location [call site] 00054
1 textfile_get [function] [call site] 00055
2 read_key [function] [call site] 00056
3 open [call site] 00057
3 flock [call site] 00058
3 __errno_location [call site] 00059
3 fstat [call site] 00060
3 __errno_location [call site] 00061
3 mmap [call site] 00062
3 __errno_location [call site] 00063
3 strlen [call site] 00064
3 strncpy [call site] 00067
3 munmap [call site] 00068
3 flock [call site] 00069
3 close [call site] 00070
3 __errno_location [call site] 00071
1 unlink [call site] 00072