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