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