1 fun:main=uninstrumented 2 fun:main=discard 3 4 ############################################################################### 5 # DFSan interface functions 6 ############################################################################### 7 fun:dfsan_union=uninstrumented 8 fun:dfsan_union=discard 9 fun:dfsan_create_label=uninstrumented 10 fun:dfsan_create_label=discard 11 fun:dfsan_set_label=uninstrumented 12 fun:dfsan_set_label=discard 13 fun:dfsan_add_label=uninstrumented 14 fun:dfsan_add_label=discard 15 fun:dfsan_get_label=uninstrumented 16 fun:dfsan_get_label=custom 17 fun:dfsan_read_label=uninstrumented 18 fun:dfsan_read_label=discard 19 fun:dfsan_get_label_count=uninstrumented 20 fun:dfsan_get_label_count=discard 21 fun:dfsan_get_label_info=uninstrumented 22 fun:dfsan_get_label_info=discard 23 fun:dfsan_has_label=uninstrumented 24 fun:dfsan_has_label=discard 25 fun:dfsan_has_label_with_desc=uninstrumented 26 fun:dfsan_has_label_with_desc=discard 27 fun:dfsan_set_write_callback=uninstrumented 28 fun:dfsan_set_write_callback=custom 29 30 ############################################################################### 31 # glibc 32 ############################################################################### 33 fun:malloc=discard 34 fun:realloc=discard 35 fun:free=discard 36 37 # Functions that return a value that depends on the input, but the output might 38 # not be necessarily data-dependent on the input. 39 fun:isalpha=functional 40 fun:isdigit=functional 41 fun:isprint=functional 42 fun:isxdigit=functional 43 fun:isalnum=functional 44 fun:ispunct=functional 45 fun:isspace=functional 46 fun:tolower=functional 47 fun:toupper=functional 48 49 # Functions that return a value that is data-dependent on the input. 50 fun:btowc=functional 51 fun:exp=functional 52 fun:exp2=functional 53 fun:fabs=functional 54 fun:finite=functional 55 fun:floor=functional 56 fun:fmod=functional 57 fun:isinf=functional 58 fun:isnan=functional 59 fun:log=functional 60 fun:modf=functional 61 fun:pow=functional 62 fun:round=functional 63 fun:sqrt=functional 64 fun:wctob=functional 65 66 # Functions that produce an output that does not depend on the input (shadow is 67 # zeroed automatically). 68 fun:__assert_fail=discard 69 fun:__ctype_b_loc=discard 70 fun:__cxa_atexit=discard 71 fun:__errno_location=discard 72 fun:__newlocale=discard 73 fun:__sbrk=discard 74 fun:__sigsetjmp=discard 75 fun:__uselocale=discard 76 fun:__wctype_l=discard 77 fun:access=discard 78 fun:alarm=discard 79 fun:atexit=discard 80 fun:bind=discard 81 fun:chdir=discard 82 fun:close=discard 83 fun:closedir=discard 84 fun:connect=discard 85 fun:dladdr=discard 86 fun:dlclose=discard 87 fun:fclose=discard 88 fun:feof=discard 89 fun:ferror=discard 90 fun:fflush=discard 91 fun:fileno=discard 92 fun:fopen=discard 93 fun:fprintf=discard 94 fun:fputc=discard 95 fun:fputc=discard 96 fun:fputs=discard 97 fun:fputs=discard 98 fun:fseek=discard 99 fun:ftell=discard 100 fun:fwrite=discard 101 fun:getenv=discard 102 fun:getuid=discard 103 fun:geteuid=discard 104 fun:getpagesize=discard 105 fun:getpid=discard 106 fun:kill=discard 107 fun:listen=discard 108 fun:lseek=discard 109 fun:mkdir=discard 110 fun:mmap=discard 111 fun:munmap=discard 112 fun:open=discard 113 fun:pipe=discard 114 fun:posix_fadvise=discard 115 fun:posix_memalign=discard 116 fun:prctl=discard 117 fun:printf=discard 118 fun:pthread_sigmask=discard 119 fun:putc=discard 120 fun:putchar=discard 121 fun:puts=discard 122 fun:rand=discard 123 fun:random=discard 124 fun:remove=discard 125 fun:sched_getcpu=discard 126 fun:sched_get_priority_max=discard 127 fun:sched_setaffinity=discard 128 fun:sched_yield=discard 129 fun:sem_destroy=discard 130 fun:sem_init=discard 131 fun:sem_post=discard 132 fun:sem_wait=discard 133 fun:send=discard 134 fun:sendmsg=discard 135 fun:sendto=discard 136 fun:setsockopt=discard 137 fun:shutdown=discard 138 fun:sleep=discard 139 fun:socket=discard 140 fun:strerror=discard 141 fun:strspn=discard 142 fun:strcspn=discard 143 fun:symlink=discard 144 fun:syscall=discard 145 fun:unlink=discard 146 fun:uselocale=discard 147 148 # Functions that produce output does not depend on the input (need to zero the 149 # shadow manually). 150 fun:calloc=custom 151 fun:clock_gettime=custom 152 fun:dlopen=custom 153 fun:fgets=custom 154 fun:fstat=custom 155 fun:getcwd=custom 156 fun:get_current_dir_name=custom 157 fun:gethostname=custom 158 fun:getrlimit=custom 159 fun:getrusage=custom 160 fun:nanosleep=custom 161 fun:pread=custom 162 fun:read=custom 163 fun:socketpair=custom 164 fun:stat=custom 165 fun:time=custom 166 167 # Functions that produce an output that depend on the input (propagate the 168 # shadow manually). 169 fun:ctime_r=custom 170 fun:inet_pton=custom 171 fun:localtime_r=custom 172 fun:memcpy=custom 173 fun:memset=custom 174 fun:strcpy=custom 175 fun:strdup=custom 176 fun:strncpy=custom 177 fun:strtod=custom 178 fun:strtol=custom 179 fun:strtoll=custom 180 fun:strtoul=custom 181 fun:strtoull=custom 182 183 # Functions that produce an output that is computed from the input, but is not 184 # necessarily data dependent. 185 fun:memchr=custom 186 fun:memcmp=custom 187 fun:strcasecmp=custom 188 fun:strchr=custom 189 fun:strcmp=custom 190 fun:strlen=custom 191 fun:strncasecmp=custom 192 fun:strncmp=custom 193 fun:strrchr=custom 194 fun:strstr=custom 195 196 # Functions which take action based on global state, such as running a callback 197 # set by a sepperate function. 198 fun:write=custom 199 200 # Functions that take a callback (wrap the callback manually). 201 fun:dl_iterate_phdr=custom 202 203 fun:getpwuid_r=custom 204 fun:poll=custom 205 fun:sched_getaffinity=custom 206 fun:select=custom 207 fun:sigemptyset=custom 208 fun:sigaction=custom 209 fun:gettimeofday=custom 210 211 # sprintf-like 212 fun:sprintf=custom 213 fun:snprintf=custom 214 215 # TODO: custom 216 fun:asprintf=discard 217 fun:qsort=discard 218 219 ############################################################################### 220 # pthread 221 ############################################################################### 222 fun:pthread_equal=discard 223 fun:pthread_getspecific=discard 224 fun:pthread_key_create=discard 225 fun:pthread_key_delete=discard 226 fun:pthread_mutex_destroy=discard 227 fun:pthread_mutex_init=discard 228 fun:pthread_mutex_lock=discard 229 fun:pthread_mutex_trylock=discard 230 fun:pthread_mutex_unlock=discard 231 fun:pthread_mutexattr_destroy=discard 232 fun:pthread_mutexattr_init=discard 233 fun:pthread_mutexattr_settype=discard 234 fun:pthread_once=discard 235 fun:pthread_self=discard 236 fun:pthread_setspecific=discard 237 238 # Functions that take a callback (wrap the callback manually). 239 fun:pthread_create=custom 240 241 ############################################################################### 242 # libffi/libgo 243 ############################################################################### 244 # Functions that are written in asm or are called from asm. 245 fun:ffi_call_unix64=uninstrumented 246 fun:ffi_call_unix64=discard 247 fun:ffi_closure_unix64_inner=uninstrumented 248 fun:ffi_closure_unix64_inner=discard 249 fun:ffi_closure_unix64=uninstrumented 250 fun:ffi_closure_unix64=discard 251 fun:__go_get_closure=uninstrumented 252 fun:__go_get_closure=discard 253 fun:__go_makefunc_can_recover=uninstrumented 254 fun:__go_makefunc_can_recover=discard 255 fun:__go_makefunc_returning=uninstrumented 256 fun:__go_makefunc_returning=discard 257 fun:reflect.MakeFuncStubGo=uninstrumented 258 fun:reflect.MakeFuncStubGo=discard 259 fun:reflect.makeFuncStub=uninstrumented 260 fun:reflect.makeFuncStub=discard 261 262 263 ############################################################################### 264 # lib/Fuzzer 265 ############################################################################### 266 # Replaces __sanitizer_cov_trace_cmp with __dfsw___sanitizer_cov_trace_cmp 267 fun:__sanitizer_cov_trace_cmp=custom 268 fun:__sanitizer_cov_trace_cmp=uninstrumented 269 # Similar for __sanitizer_cov_trace_switch 270 fun:__sanitizer_cov_trace_switch=custom 271 fun:__sanitizer_cov_trace_switch=uninstrumented 272 273 # Ignores all other __sanitizer callbacks. 274 fun:__sanitizer_cov=uninstrumented 275 fun:__sanitizer_cov=discard 276 fun:__sanitizer_cov_module_init=uninstrumented 277 fun:__sanitizer_cov_module_init=discard 278 fun:__sanitizer_cov_with_check=uninstrumented 279 fun:__sanitizer_cov_with_check=discard 280 fun:__sanitizer_cov_indir_call16=uninstrumented 281 fun:__sanitizer_cov_indir_call16=discard 282 fun:__sanitizer_cov_indir_call16=uninstrumented 283 fun:__sanitizer_cov_indir_call16=discard 284 fun:__sanitizer_reset_coverage=uninstrumented 285 fun:__sanitizer_reset_coverage=discard 286 fun:__sanitizer_set_death_callback=uninstrumented 287 fun:__sanitizer_set_death_callback=discard 288 fun:__sanitizer_get_coverage_guards=uninstrumented 289 fun:__sanitizer_get_coverage_guards=discard 290 fun:__sanitizer_get_number_of_counters=uninstrumented 291 fun:__sanitizer_get_number_of_counters=discard 292 fun:__sanitizer_update_counter_bitset_and_clear_counters=uninstrumented 293 fun:__sanitizer_update_counter_bitset_and_clear_counters=discard 294 fun:__sanitizer_get_total_unique_coverage=uninstrumented 295 fun:__sanitizer_get_total_unique_coverage=discard 296 fun:__sanitizer_get_total_unique_coverage=uninstrumented 297 fun:__sanitizer_get_total_unique_coverage=discard 298 fun:__sanitizer_update_counter_bitset_and_clear_counters=uninstrumented 299 fun:__sanitizer_update_counter_bitset_and_clear_counters=discard 300 301 # Ignores the dfsan wrappers. 302 fun:__dfsw_*=uninstrumented 303 fun:__dfsw_*=discard 304 305 # Don't add extra parameters to the Fuzzer callback. 306 fun:LLVMFuzzerTestOneInput=uninstrumented 307