| fun:main=uninstrumented | |
| fun:main=discard | |
| ############################################################################### | |
| # DFSan interface functions | |
| ############################################################################### | |
| fun:dfsan_union=uninstrumented | |
| fun:dfsan_union=discard | |
| fun:dfsan_create_label=uninstrumented | |
| fun:dfsan_create_label=discard | |
| fun:dfsan_set_label=uninstrumented | |
| fun:dfsan_set_label=discard | |
| fun:dfsan_add_label=uninstrumented | |
| fun:dfsan_add_label=discard | |
| fun:dfsan_get_label=uninstrumented | |
| fun:dfsan_get_label=custom | |
| fun:dfsan_read_label=uninstrumented | |
| fun:dfsan_read_label=discard | |
| fun:dfsan_get_label_count=uninstrumented | |
| fun:dfsan_get_label_count=discard | |
| fun:dfsan_get_label_info=uninstrumented | |
| fun:dfsan_get_label_info=discard | |
| fun:dfsan_has_label=uninstrumented | |
| fun:dfsan_has_label=discard | |
| fun:dfsan_has_label_with_desc=uninstrumented | |
| fun:dfsan_has_label_with_desc=discard | |
| fun:dfsan_set_write_callback=uninstrumented | |
| fun:dfsan_set_write_callback=custom | |
| fun:dfsan_flush=uninstrumented | |
| fun:dfsan_flush=discard | |
| fun:dfsan_print_origin_trace=uninstrumented | |
| fun:dfsan_print_origin_trace=discard | |
| fun:dfsan_print_origin_id_trace=uninstrumented | |
| fun:dfsan_print_origin_id_trace=discard | |
| fun:dfsan_sprint_origin_trace=uninstrumented | |
| fun:dfsan_sprint_origin_trace=discard | |
| fun:dfsan_sprint_origin_id_trace=uninstrumented | |
| fun:dfsan_sprint_origin_id_trace=discard | |
| fun:dfsan_sprint_stack_trace=uninstrumented | |
| fun:dfsan_sprint_stack_trace=discard | |
| fun:dfsan_get_origin=uninstrumented | |
| fun:dfsan_get_origin=custom | |
| fun:dfsan_read_origin_of_first_taint=uninstrumented | |
| fun:dfsan_read_origin_of_first_taint=discard | |
| fun:dfsan_get_init_origin=uninstrumented | |
| fun:dfsan_get_init_origin=discard | |
| fun:dfsan_get_track_origins=uninstrumented | |
| fun:dfsan_get_track_origins=discard | |
| fun:dfsan_set_conditional_callback=uninstrumented | |
| fun:dfsan_set_conditional_callback=discard | |
| fun:dfsan_get_labels_in_signal_conditional=uninstrumented | |
| fun:dfsan_get_labels_in_signal_conditional=discard | |
| fun:dfsan_set_reaches_function_callback=uninstrumented | |
| fun:dfsan_set_reaches_function_callback=discard | |
| fun:dfsan_get_labels_in_signal_reaches_function=uninstrumented | |
| fun:dfsan_get_labels_in_signal_reaches_function=discard | |
| fun:dfsan_reaches_function_callback=uninstrumented | |
| fun:dfsan_reaches_function_callback=discard | |
| ############################################################################### | |
| # glibc | |
| ############################################################################### | |
| # Functions of memory allocators | |
| fun:__libc_memalign=discard | |
| fun:aligned_alloc=discard | |
| fun:calloc=discard | |
| fun:cfree=discard | |
| fun:mallinfo=discard | |
| fun:malloc=discard | |
| fun:free=discard | |
| fun:malloc_stats=discard | |
| fun:malloc_usable_size=discard | |
| fun:mallopt=discard | |
| fun:memalign=discard | |
| fun:posix_memalign=discard | |
| fun:pvalloc=discard | |
| fun:realloc=discard | |
| fun:reallocarray=discard | |
| fun:valloc=discard | |
| # Functions that return a value that depends on the input, but the output might | |
| # not be necessarily data-dependent on the input. | |
| fun:isalpha=functional | |
| fun:isdigit=functional | |
| fun:isprint=functional | |
| fun:isxdigit=functional | |
| fun:isalnum=functional | |
| fun:ispunct=functional | |
| fun:isspace=functional | |
| fun:tolower=functional | |
| fun:_tolower=functional | |
| fun:toupper=functional | |
| # Functions that return a value that is data-dependent on the input. | |
| fun:__isinf=functional | |
| fun:__isinff=functional | |
| fun:__signbit=functional | |
| fun:__signbitf=functional | |
| fun:__signbitl=functional | |
| fun:btowc=functional | |
| fun:exp=functional | |
| fun:exp2=functional | |
| fun:expf=functional | |
| fun:expl=functional | |
| fun:fabs=functional | |
| fun:finite=functional | |
| fun:finitef=functional | |
| fun:finitel=functional | |
| fun:floor=functional | |
| fun:fmod=functional | |
| fun:isinf=functional | |
| fun:isinff=functional | |
| fun:isinfl=functional | |
| fun:isnan=functional | |
| fun:isnanf=functional | |
| fun:isnanl=functional | |
| fun:log=functional | |
| fun:log1p=functional | |
| fun:log1pf=functional | |
| fun:log1pl=functional | |
| fun:log2=functional | |
| fun:log2f=functional | |
| fun:log2l=functional | |
| fun:modf=functional | |
| fun:nextafter=functional | |
| fun:nextafterf=functional | |
| fun:nextafterl=functional | |
| fun:nexttoward=functional | |
| fun:nexttowardf=functional | |
| fun:nexttowardl=functional | |
| fun:pow=functional | |
| fun:powf=functional | |
| fun:powl=functional | |
| fun:round=functional | |
| fun:sqrt=functional | |
| fun:sqrtf=functional | |
| fun:sqrtl=functional | |
| fun:wctob=functional | |
| # Functions that produce an output that does not depend on the input (shadow is | |
| # zeroed automatically). | |
| fun:__assert_fail=discard | |
| fun:__cmsg_nxthdr=discard | |
| fun:__ctype_b_loc=discard | |
| fun:__cxa_atexit=discard | |
| fun:__errno_location=discard | |
| fun:__newlocale=discard | |
| fun:__sbrk=discard | |
| fun:__sigsetjmp=discard | |
| fun:__uselocale=discard | |
| fun:__wctype_l=discard | |
| fun:access=discard | |
| fun:alarm=discard | |
| fun:atexit=discard | |
| fun:bind=discard | |
| fun:chdir=discard | |
| fun:close=discard | |
| fun:closedir=discard | |
| fun:connect=discard | |
| fun:creat=discard | |
| fun:dladdr=discard | |
| fun:dlclose=discard | |
| fun:epoll_create=discard | |
| fun:epoll_create1=discard | |
| fun:epoll_ctl=discard | |
| fun:fclose=discard | |
| fun:feof=discard | |
| fun:ferror=discard | |
| fun:fflush=discard | |
| fun:fileno=discard | |
| fun:fopen=discard | |
| fun:fprintf=discard | |
| fun:fputc=discard | |
| fun:fputc=discard | |
| fun:fputs=discard | |
| fun:fputs=discard | |
| fun:fseek=discard | |
| fun:ftell=discard | |
| fun:fwrite=discard | |
| fun:getenv=discard | |
| fun:getuid=discard | |
| fun:geteuid=discard | |
| fun:getpagesize=discard | |
| fun:getpid=discard | |
| fun:kill=discard | |
| fun:listen=discard | |
| fun:lseek=discard | |
| fun:mkdir=discard | |
| fun:mmap=discard | |
| fun:munmap=discard | |
| fun:open=discard | |
| fun:openat=discard | |
| fun:pipe=discard | |
| fun:posix_fadvise=discard | |
| fun:prctl=discard | |
| fun:printf=discard | |
| fun:pthread_sigmask=discard | |
| fun:putc=discard | |
| fun:putchar=discard | |
| fun:puts=discard | |
| fun:rand=discard | |
| fun:random=discard | |
| fun:remove=discard | |
| fun:sched_getcpu=discard | |
| fun:sched_get_priority_max=discard | |
| fun:sched_setaffinity=discard | |
| fun:sched_yield=discard | |
| fun:sem_destroy=discard | |
| fun:sem_init=discard | |
| fun:sem_post=discard | |
| fun:sem_wait=discard | |
| fun:send=discard | |
| fun:sendmsg=discard | |
| fun:sendto=discard | |
| fun:setsockopt=discard | |
| fun:shutdown=discard | |
| fun:sleep=discard | |
| fun:socket=discard | |
| fun:strerror=discard | |
| fun:strspn=discard | |
| fun:strcspn=discard | |
| fun:symlink=discard | |
| fun:syscall=discard | |
| fun:unlink=discard | |
| fun:uselocale=discard | |
| fun:vfprintf=discard | |
| # Functions that produce output does not depend on the input (need to zero the | |
| # shadow manually). | |
| fun:_dl_get_tls_static_info=custom | |
| fun:clock_gettime=custom | |
| fun:dlopen=custom | |
| fun:epoll_wait=custom | |
| fun:fgets=custom | |
| fun:fstat=custom | |
| fun:getcwd=custom | |
| fun:get_current_dir_name=custom | |
| fun:getentropy=custom | |
| fun:gethostname=custom | |
| fun:getpeername=custom | |
| fun:getrlimit=custom | |
| fun:getrusage=custom | |
| fun:getsockname=custom | |
| fun:getsockopt=custom | |
| fun:nanosleep=custom | |
| fun:pread=custom | |
| fun:read=custom | |
| fun:recvmmsg=custom | |
| fun:recvmsg=custom | |
| fun:sigaltstack=custom | |
| fun:socketpair=custom | |
| fun:stat=custom | |
| fun:time=custom | |
| # Functions that produce an output that depend on the input (propagate the | |
| # shadow manually). | |
| fun:ctime_r=custom | |
| fun:inet_pton=custom | |
| fun:localtime_r=custom | |
| fun:memcpy=custom | |
| fun:memmove=custom | |
| fun:memset=custom | |
| fun:strcpy=custom | |
| fun:strdup=custom | |
| fun:strncpy=custom | |
| fun:strtod=custom | |
| fun:strtol=custom | |
| fun:strtoll=custom | |
| fun:strtoul=custom | |
| fun:strtoull=custom | |
| fun:strcat=custom | |
| fun:strncat=custom | |
| fun:__isoc23_strtod=custom | |
| fun:__isoc23_strtol=custom | |
| fun:__isoc23_strtoll=custom | |
| fun:__isoc23_strtoul=custom | |
| fun:__isoc23_strtoull=custom | |
| # Functions that produce an output that is computed from the input, but is not | |
| # necessarily data dependent. | |
| fun:bcmp=custom | |
| fun:memchr=custom | |
| fun:memcmp=custom | |
| fun:strcasecmp=custom | |
| fun:strchr=custom | |
| fun:strcmp=custom | |
| fun:strlen=custom | |
| fun:strnlen=custom | |
| fun:strncasecmp=custom | |
| fun:strncmp=custom | |
| fun:strpbrk=custom | |
| fun:strrchr=custom | |
| fun:strstr=custom | |
| fun:strsep=custom | |
| # Functions which take action based on global state, such as running a callback | |
| # set by a separate function. | |
| fun:write=custom | |
| # Functions that take a callback (wrap the callback manually). | |
| fun:dl_iterate_phdr=custom | |
| fun:getpwuid_r=custom | |
| fun:poll=custom | |
| fun:sched_getaffinity=custom | |
| fun:select=custom | |
| fun:sigemptyset=custom | |
| fun:sigaction=custom | |
| fun:signal=custom | |
| fun:gettimeofday=custom | |
| # sprintf-like | |
| fun:sprintf=custom | |
| fun:snprintf=custom | |
| # scanf-like | |
| fun:sscanf=custom | |
| fun:__isoc99_sscanf=custom | |
| fun:__isoc23_sscanf=custom | |
| # TODO: custom | |
| fun:asprintf=discard | |
| fun:qsort=discard | |
| # fork | |
| fun:fork=custom | |
| ############################################################################### | |
| # pthread | |
| ############################################################################### | |
| fun:__pthread_register_cancel=discard | |
| fun:__pthread_unregister_cancel=discard | |
| fun:pthread_attr_destroy=discard | |
| fun:pthread_attr_getaffinity_np=discard | |
| fun:pthread_attr_getdetachstate=discard | |
| fun:pthread_attr_getguardsize=discard | |
| fun:pthread_attr_getinheritsched=discard | |
| fun:pthread_attr_getschedparam=discard | |
| fun:pthread_attr_getschedpolicy=discard | |
| fun:pthread_attr_getscope=discard | |
| fun:pthread_attr_getstack=discard | |
| fun:pthread_attr_getstackaddr=disacrd | |
| fun:pthread_attr_getstacksize=discard | |
| fun:pthread_attr_init=discard | |
| fun:pthread_attr_setaffinity_np=discard | |
| fun:pthread_attr_setdetachstate=discard | |
| fun:pthread_attr_setguardsize=discard | |
| fun:pthread_attr_setinheritsched=discard | |
| fun:pthread_attr_setschedparam=discard | |
| fun:pthread_attr_setschedpolicy=discard | |
| fun:pthread_attr_setscope=discard | |
| fun:pthread_attr_setstack=discard | |
| fun:pthread_attr_setstackaddr=discard | |
| fun:pthread_attr_setstacksize=discard | |
| fun:pthread_equal=discard | |
| fun:pthread_getschedparam=discard | |
| fun:pthread_getspecific=discard | |
| fun:pthread_key_create=discard | |
| fun:pthread_key_delete=discard | |
| fun:pthread_mutex_destroy=discard | |
| fun:pthread_mutex_init=discard | |
| fun:pthread_mutex_lock=discard | |
| fun:pthread_mutex_trylock=discard | |
| fun:pthread_mutex_unlock=discard | |
| fun:pthread_mutexattr_destroy=discard | |
| fun:pthread_mutexattr_init=discard | |
| fun:pthread_mutexattr_settype=discard | |
| fun:pthread_rwlock_destroy=discard | |
| fun:pthread_rwlock_init=discard | |
| fun:pthread_rwlock_rdlock=discard | |
| fun:pthread_rwlock_timedrdlock=discard | |
| fun:pthread_rwlock_timedwrlock=discard | |
| fun:pthread_rwlock_tryrdlock=discard | |
| fun:pthread_rwlock_trywrlock=discard | |
| fun:pthread_rwlock_wrlock=discard | |
| fun:pthread_rwlock_unlock=discard | |
| fun:pthread_setschedparam=discard | |
| fun:pthread_setname_np=discard | |
| fun:pthread_once=discard | |
| fun:pthread_self=discard | |
| fun:pthread_setspecific=discard | |
| # Functions that take a callback (wrap the callback manually). | |
| fun:pthread_create=custom | |
| # Functions that produce output does not depend on the input (need to zero the | |
| # shadow manually). | |
| fun:pthread_join=custom | |
| ############################################################################### | |
| # libffi/libgo | |
| ############################################################################### | |
| # Functions that are written in asm or are called from asm. | |
| fun:ffi_call_unix64=uninstrumented | |
| fun:ffi_call_unix64=discard | |
| fun:ffi_closure_unix64_inner=uninstrumented | |
| fun:ffi_closure_unix64_inner=discard | |
| fun:ffi_closure_unix64=uninstrumented | |
| fun:ffi_closure_unix64=discard | |
| fun:__go_get_closure=uninstrumented | |
| fun:__go_get_closure=discard | |
| fun:__go_makefunc_can_recover=uninstrumented | |
| fun:__go_makefunc_can_recover=discard | |
| fun:__go_makefunc_returning=uninstrumented | |
| fun:__go_makefunc_returning=discard | |
| fun:reflect.MakeFuncStubGo=uninstrumented | |
| fun:reflect.MakeFuncStubGo=discard | |
| fun:reflect.makeFuncStub=uninstrumented | |
| fun:reflect.makeFuncStub=discard | |
| ############################################################################### | |
| # lib/Fuzzer | |
| ############################################################################### | |
| # Replaces __sanitizer_cov_trace_cmp with __dfsw___sanitizer_cov_trace_cmp | |
| fun:__sanitizer_cov_trace_cmp1=custom | |
| fun:__sanitizer_cov_trace_cmp1=uninstrumented | |
| fun:__sanitizer_cov_trace_cmp2=custom | |
| fun:__sanitizer_cov_trace_cmp2=uninstrumented | |
| fun:__sanitizer_cov_trace_cmp4=custom | |
| fun:__sanitizer_cov_trace_cmp4=uninstrumented | |
| fun:__sanitizer_cov_trace_cmp8=custom | |
| fun:__sanitizer_cov_trace_cmp8=uninstrumented | |
| fun:__sanitizer_cov_trace_const_cmp1=custom | |
| fun:__sanitizer_cov_trace_const_cmp1=uninstrumented | |
| fun:__sanitizer_cov_trace_const_cmp2=custom | |
| fun:__sanitizer_cov_trace_const_cmp2=uninstrumented | |
| fun:__sanitizer_cov_trace_const_cmp4=custom | |
| fun:__sanitizer_cov_trace_const_cmp4=uninstrumented | |
| fun:__sanitizer_cov_trace_const_cmp8=custom | |
| fun:__sanitizer_cov_trace_const_cmp8=uninstrumented | |
| # Similar for __sanitizer_cov_trace_switch | |
| fun:__sanitizer_cov_trace_switch=custom | |
| fun:__sanitizer_cov_trace_switch=uninstrumented | |
| # Ignores all other __sanitizer callbacks. | |
| fun:__sanitizer_cov=uninstrumented | |
| fun:__sanitizer_cov=discard | |
| fun:__sanitizer_cov_module_init=uninstrumented | |
| fun:__sanitizer_cov_module_init=discard | |
| fun:__sanitizer_cov_with_check=uninstrumented | |
| fun:__sanitizer_cov_with_check=discard | |
| fun:__sanitizer_set_death_callback=uninstrumented | |
| fun:__sanitizer_set_death_callback=discard | |
| fun:__sanitizer_update_counter_bitset_and_clear_counters=uninstrumented | |
| fun:__sanitizer_update_counter_bitset_and_clear_counters=discard | |
| fun:__sanitizer_cov_trace_pc*=uninstrumented | |
| fun:__sanitizer_cov_trace_pc*=discard | |
| fun:__sanitizer_cov_pcs_init=uninstrumented | |
| fun:__sanitizer_cov_pcs_init=discard | |
| fun:__sanitizer_get_current_allocated_bytes=uninstrumented | |
| fun:__sanitizer_get_current_allocated_bytes=discard | |
| fun:__sanitizer_get_heap_size=uninstrumented | |
| fun:__sanitizer_get_heap_size=discard | |
| fun:__sanitizer_get_free_bytes=uninstrumented | |
| fun:__sanitizer_get_free_bytes=discard | |
| fun:__sanitizer_get_unmapped_bytes=uninstrumented | |
| fun:__sanitizer_get_unmapped_bytes=discard | |
| fun:__sanitizer_get_estimated_allocated_size=uninstrumented | |
| fun:__sanitizer_get_estimated_allocated_size=discard | |
| fun:__sanitizer_get_ownership=uninstrumented | |
| fun:__sanitizer_get_ownership=discard | |
| fun:__sanitizer_get_allocated_begin=uninstrumented | |
| fun:__sanitizer_get_allocated_begin=discard | |
| fun:__sanitizer_get_allocated_size=uninstrumented | |
| fun:__sanitizer_get_allocated_size=discard | |
| fun:__sanitizer_get_allocated_size_fast=uninstrumented | |
| fun:__sanitizer_get_allocated_size_fast=discard | |
| fun:__sanitizer_print_stack_trace=uninstrumented | |
| fun:__sanitizer_print_stack_trace=discard | |
| fun:TcmallocSlab_Internal_PushBatch_FixedShift=uninstrumented | |
| fun:TcmallocSlab_Internal_PushBatch_FixedShift=discard | |
| fun:TcmallocSlab_Internal_PushBatch_FixedShift_VCPU=uninstrumented | |
| fun:TcmallocSlab_Internal_PushBatch_FixedShift_VCPU=discard | |
| fun:TcmallocSlab_Internal_PerCpuCmpxchg64=uninstrumented | |
| fun:TcmallocSlab_Internal_PerCpuCmpxchg64=discard | |
| fun:TcmallocSlab_Internal_PerCpuCmpxchg64_VCPU=uninstrumented | |
| fun:TcmallocSlab_Internal_PerCpuCmpxchg64_VCPU=discard | |
| fun:TcmallocSlab_Internal_PopBatch_FixedShift=uninstrumented | |
| fun:TcmallocSlab_Internal_PopBatch_FixedShift=discard | |
| fun:TcmallocSlab_Internal_PopBatch_FixedShift_VCPU=uninstrumented | |
| fun:TcmallocSlab_Internal_PopBatch_FixedShift_VCPU=discard | |
| # Ignores the dfsan wrappers. | |
| fun:__dfsw_*=uninstrumented | |
| fun:__dfsw_*=discard | |
| fun:__dfso_*=uninstrumented | |
| fun:__dfso_*=discard | |
| # Rust functions. | |
| fun:__rdl_alloc=uninstrumented | |
| fun:__rdl_alloc_zeroed=uninstrumented | |
| fun:__rdl_dealloc=uninstrumented | |
| fun:__rdl_realloc=uninstrumented | |
| fun:__rg_oom=uninstrumented | |
| fun:__rust_alloc=uninstrumented | |
| fun:__rust_alloc_error_handler=uninstrumented | |
| fun:__rust_alloc_zeroed=uninstrumented | |
| fun:__rust_dealloc=uninstrumented | |
| fun:__rust_realloc=uninstrumented | |
| fun:_ZN4core*=uninstrumented | |
| fun:_ZN3std*=uninstrumented | |
| fun:rust_eh_personality=uninstrumented |