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