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:free=discard 37 38# Functions that return a value that depends on the input, but the output might 39# not be necessarily data-dependent on the input. 40fun:isalpha=functional 41fun:isdigit=functional 42fun:isprint=functional 43fun:isxdigit=functional 44fun:isalnum=functional 45fun:ispunct=functional 46fun:isspace=functional 47fun:tolower=functional 48fun:toupper=functional 49 50# Functions that return a value that is data-dependent on the input. 51fun:__isinf=functional 52fun:__isinff=functional 53fun:__signbit=functional 54fun:__signbitf=functional 55fun:__signbitl=functional 56fun:btowc=functional 57fun:exp=functional 58fun:exp2=functional 59fun:expf=functional 60fun:expl=functional 61fun:fabs=functional 62fun:finite=functional 63fun:finitef=functional 64fun:finitel=functional 65fun:floor=functional 66fun:fmod=functional 67fun:isinf=functional 68fun:isinff=functional 69fun:isinfl=functional 70fun:isnan=functional 71fun:isnanf=functional 72fun:isnanl=functional 73fun:log=functional 74fun:log1p=functional 75fun:log1pf=functional 76fun:log1pl=functional 77fun:log2=functional 78fun:log2f=functional 79fun:log2l=functional 80fun:modf=functional 81fun:nextafter=functional 82fun:nextafterf=functional 83fun:nextafterl=functional 84fun:nexttoward=functional 85fun:nexttowardf=functional 86fun:nexttowardl=functional 87fun:pow=functional 88fun:powf=functional 89fun:powl=functional 90fun:round=functional 91fun:sqrt=functional 92fun:sqrtf=functional 93fun:sqrtl=functional 94fun:wctob=functional 95 96# Functions that produce an output that does not depend on the input (shadow is 97# zeroed automatically). 98fun:__assert_fail=discard 99fun:__cmsg_nxthdr=discard 100fun:__ctype_b_loc=discard 101fun:__cxa_atexit=discard 102fun:__errno_location=discard 103fun:__newlocale=discard 104fun:__sbrk=discard 105fun:__sigsetjmp=discard 106fun:__uselocale=discard 107fun:__wctype_l=discard 108fun:access=discard 109fun:alarm=discard 110fun:atexit=discard 111fun:bind=discard 112fun:chdir=discard 113fun:close=discard 114fun:closedir=discard 115fun:connect=discard 116fun:creat=discard 117fun:dladdr=discard 118fun:dlclose=discard 119fun:epoll_create=discard 120fun:epoll_create1=discard 121fun:epoll_ctl=discard 122fun:fclose=discard 123fun:feof=discard 124fun:ferror=discard 125fun:fflush=discard 126fun:fileno=discard 127fun:fopen=discard 128fun:fprintf=discard 129fun:fputc=discard 130fun:fputc=discard 131fun:fputs=discard 132fun:fputs=discard 133fun:fseek=discard 134fun:ftell=discard 135fun:fwrite=discard 136fun:getenv=discard 137fun:getuid=discard 138fun:geteuid=discard 139fun:getpagesize=discard 140fun:getpid=discard 141fun:kill=discard 142fun:listen=discard 143fun:lseek=discard 144fun:mkdir=discard 145fun:mmap=discard 146fun:munmap=discard 147fun:open=discard 148fun:openat=discard 149fun:pipe=discard 150fun:posix_fadvise=discard 151fun:posix_memalign=discard 152fun:prctl=discard 153fun:printf=discard 154fun:pthread_sigmask=discard 155fun:putc=discard 156fun:putchar=discard 157fun:puts=discard 158fun:rand=discard 159fun:random=discard 160fun:remove=discard 161fun:sched_getcpu=discard 162fun:sched_get_priority_max=discard 163fun:sched_setaffinity=discard 164fun:sched_yield=discard 165fun:sem_destroy=discard 166fun:sem_init=discard 167fun:sem_post=discard 168fun:sem_wait=discard 169fun:send=discard 170fun:sendmsg=discard 171fun:sendto=discard 172fun:setsockopt=discard 173fun:shutdown=discard 174fun:sleep=discard 175fun:socket=discard 176fun:strerror=discard 177fun:strspn=discard 178fun:strcspn=discard 179fun:symlink=discard 180fun:syscall=discard 181fun:unlink=discard 182fun:uselocale=discard 183 184# Functions that produce output does not depend on the input (need to zero the 185# shadow manually). 186fun:_dl_get_tls_static_info=custom 187fun:calloc=custom 188fun:clock_gettime=custom 189fun:dlopen=custom 190fun:epoll_wait=custom 191fun:fgets=custom 192fun:fstat=custom 193fun:getcwd=custom 194fun:get_current_dir_name=custom 195fun:gethostname=custom 196fun:getpeername=custom 197fun:getrlimit=custom 198fun:getrusage=custom 199fun:getsockname=custom 200fun:getsockopt=custom 201fun:nanosleep=custom 202fun:pread=custom 203fun:read=custom 204fun:recvmmsg=custom 205fun:recvmsg=custom 206fun:sigaltstack=custom 207fun:socketpair=custom 208fun:stat=custom 209fun:time=custom 210 211# Functions that produce an output that depend on the input (propagate the 212# shadow manually). 213fun:ctime_r=custom 214fun:inet_pton=custom 215fun:localtime_r=custom 216fun:memcpy=custom 217fun:memset=custom 218fun:strcpy=custom 219fun:strdup=custom 220fun:strncpy=custom 221fun:strtod=custom 222fun:strtol=custom 223fun:strtoll=custom 224fun:strtoul=custom 225fun:strtoull=custom 226 227# Functions that produce an output that is computed from the input, but is not 228# necessarily data dependent. 229fun:bcmp=custom 230fun:memchr=custom 231fun:memcmp=custom 232fun:strcasecmp=custom 233fun:strchr=custom 234fun:strcmp=custom 235fun:strlen=custom 236fun:strncasecmp=custom 237fun:strncmp=custom 238fun:strpbrk=custom 239fun:strrchr=custom 240fun:strstr=custom 241 242# Functions which take action based on global state, such as running a callback 243# set by a sepperate function. 244fun:write=custom 245 246# Functions that take a callback (wrap the callback manually). 247fun:dl_iterate_phdr=custom 248 249fun:getpwuid_r=custom 250fun:poll=custom 251fun:sched_getaffinity=custom 252fun:select=custom 253fun:sigemptyset=custom 254fun:sigaction=custom 255fun:gettimeofday=custom 256 257# sprintf-like 258fun:sprintf=custom 259fun:snprintf=custom 260 261# TODO: custom 262fun:asprintf=discard 263fun:qsort=discard 264 265############################################################################### 266# pthread 267############################################################################### 268fun:__pthread_register_cancel=discard 269fun:__pthread_unregister_cancel=discard 270fun:pthread_attr_destroy=discard 271fun:pthread_attr_getaffinity_np=discard 272fun:pthread_attr_getdetachstate=discard 273fun:pthread_attr_getguardsize=discard 274fun:pthread_attr_getinheritsched=discard 275fun:pthread_attr_getschedparam=discard 276fun:pthread_attr_getschedpolicy=discard 277fun:pthread_attr_getscope=discard 278fun:pthread_attr_getstack=discard 279fun:pthread_attr_getstackaddr=disacrd 280fun:pthread_attr_getstacksize=discard 281fun:pthread_attr_init=discard 282fun:pthread_attr_setaffinity_np=discard 283fun:pthread_attr_setdetachstate=discard 284fun:pthread_attr_setguardsize=discard 285fun:pthread_attr_setinheritsched=discard 286fun:pthread_attr_setschedparam=discard 287fun:pthread_attr_setschedpolicy=discard 288fun:pthread_attr_setscope=discard 289fun:pthread_attr_setstack=discard 290fun:pthread_attr_setstackaddr=discard 291fun:pthread_attr_setstacksize=discard 292fun:pthread_equal=discard 293fun:pthread_getschedparam=discard 294fun:pthread_getspecific=discard 295fun:pthread_key_create=discard 296fun:pthread_key_delete=discard 297fun:pthread_mutex_destroy=discard 298fun:pthread_mutex_init=discard 299fun:pthread_mutex_lock=discard 300fun:pthread_mutex_trylock=discard 301fun:pthread_mutex_unlock=discard 302fun:pthread_mutexattr_destroy=discard 303fun:pthread_mutexattr_init=discard 304fun:pthread_mutexattr_settype=discard 305fun:pthread_rwlock_destroy=discard 306fun:pthread_rwlock_init=discard 307fun:pthread_rwlock_rdlock=discard 308fun:pthread_rwlock_timedrdlock=discard 309fun:pthread_rwlock_timedwrlock=discard 310fun:pthread_rwlock_tryrdlock=discard 311fun:pthread_rwlock_trywrlock=discard 312fun:pthread_rwlock_wrlock=discard 313fun:pthread_rwlock_unlock=discard 314fun:pthread_setschedparam=discard 315fun:pthread_setname_np=discard 316fun:pthread_once=discard 317fun:pthread_self=discard 318fun:pthread_setspecific=discard 319 320# Functions that take a callback (wrap the callback manually). 321fun:pthread_create=custom 322 323# Functions that produce output does not depend on the input (need to zero the 324# shadow manually). 325fun:pthread_join=custom 326 327############################################################################### 328# libffi/libgo 329############################################################################### 330# Functions that are written in asm or are called from asm. 331fun:ffi_call_unix64=uninstrumented 332fun:ffi_call_unix64=discard 333fun:ffi_closure_unix64_inner=uninstrumented 334fun:ffi_closure_unix64_inner=discard 335fun:ffi_closure_unix64=uninstrumented 336fun:ffi_closure_unix64=discard 337fun:__go_get_closure=uninstrumented 338fun:__go_get_closure=discard 339fun:__go_makefunc_can_recover=uninstrumented 340fun:__go_makefunc_can_recover=discard 341fun:__go_makefunc_returning=uninstrumented 342fun:__go_makefunc_returning=discard 343fun:reflect.MakeFuncStubGo=uninstrumented 344fun:reflect.MakeFuncStubGo=discard 345fun:reflect.makeFuncStub=uninstrumented 346fun:reflect.makeFuncStub=discard 347 348 349############################################################################### 350# lib/Fuzzer 351############################################################################### 352# Replaces __sanitizer_cov_trace_cmp with __dfsw___sanitizer_cov_trace_cmp 353fun:__sanitizer_cov_trace_cmp1=custom 354fun:__sanitizer_cov_trace_cmp1=uninstrumented 355fun:__sanitizer_cov_trace_cmp2=custom 356fun:__sanitizer_cov_trace_cmp2=uninstrumented 357fun:__sanitizer_cov_trace_cmp4=custom 358fun:__sanitizer_cov_trace_cmp4=uninstrumented 359fun:__sanitizer_cov_trace_cmp8=custom 360fun:__sanitizer_cov_trace_cmp8=uninstrumented 361fun:__sanitizer_cov_trace_const_cmp1=custom 362fun:__sanitizer_cov_trace_const_cmp1=uninstrumented 363fun:__sanitizer_cov_trace_const_cmp2=custom 364fun:__sanitizer_cov_trace_const_cmp2=uninstrumented 365fun:__sanitizer_cov_trace_const_cmp4=custom 366fun:__sanitizer_cov_trace_const_cmp4=uninstrumented 367fun:__sanitizer_cov_trace_const_cmp8=custom 368fun:__sanitizer_cov_trace_const_cmp8=uninstrumented 369# Similar for __sanitizer_cov_trace_switch 370fun:__sanitizer_cov_trace_switch=custom 371fun:__sanitizer_cov_trace_switch=uninstrumented 372 373# Ignores all other __sanitizer callbacks. 374fun:__sanitizer_cov=uninstrumented 375fun:__sanitizer_cov=discard 376fun:__sanitizer_cov_module_init=uninstrumented 377fun:__sanitizer_cov_module_init=discard 378fun:__sanitizer_cov_with_check=uninstrumented 379fun:__sanitizer_cov_with_check=discard 380fun:__sanitizer_set_death_callback=uninstrumented 381fun:__sanitizer_set_death_callback=discard 382fun:__sanitizer_update_counter_bitset_and_clear_counters=uninstrumented 383fun:__sanitizer_update_counter_bitset_and_clear_counters=discard 384fun:__sanitizer_cov_trace_pc*=uninstrumented 385fun:__sanitizer_cov_trace_pc*=discard 386fun:__sanitizer_cov_pcs_init=uninstrumented 387fun:__sanitizer_cov_pcs_init=discard 388 389# Ignores the dfsan wrappers. 390fun:__dfsw_*=uninstrumented 391fun:__dfsw_*=discard 392