| 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 |
| |
| ############################################################################### |
| # glibc |
| ############################################################################### |
| fun:malloc=discard |
| fun:realloc=discard |
| fun:free=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:toupper=functional |
| |
| # Functions that return a value that is data-dependent on the input. |
| fun:btowc=functional |
| fun:exp=functional |
| fun:exp2=functional |
| fun:fabs=functional |
| fun:finite=functional |
| fun:floor=functional |
| fun:fmod=functional |
| fun:isinf=functional |
| fun:isnan=functional |
| fun:log=functional |
| fun:modf=functional |
| fun:pow=functional |
| fun:round=functional |
| fun:sqrt=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:__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:dladdr=discard |
| fun:dlclose=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:pipe=discard |
| fun:posix_fadvise=discard |
| fun:posix_memalign=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 |
| |
| # Functions that produce output does not depend on the input (need to zero the |
| # shadow manually). |
| fun:calloc=custom |
| fun:clock_gettime=custom |
| fun:dlopen=custom |
| fun:fgets=custom |
| fun:fstat=custom |
| fun:getcwd=custom |
| fun:get_current_dir_name=custom |
| fun:gethostname=custom |
| fun:getrlimit=custom |
| fun:getrusage=custom |
| fun:nanosleep=custom |
| fun:pread=custom |
| fun:read=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: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 |
| |
| # Functions that produce an output that is computed from the input, but is not |
| # necessarily data dependent. |
| fun:memchr=custom |
| fun:memcmp=custom |
| fun:strcasecmp=custom |
| fun:strchr=custom |
| fun:strcmp=custom |
| fun:strlen=custom |
| fun:strncasecmp=custom |
| fun:strncmp=custom |
| fun:strrchr=custom |
| fun:strstr=custom |
| |
| # Functions which take action based on global state, such as running a callback |
| # set by a sepperate 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:gettimeofday=custom |
| |
| # sprintf-like |
| fun:sprintf=custom |
| fun:snprintf=custom |
| |
| # TODO: custom |
| fun:asprintf=discard |
| fun:qsort=discard |
| |
| ############################################################################### |
| # pthread |
| ############################################################################### |
| fun:pthread_equal=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_once=discard |
| fun:pthread_self=discard |
| fun:pthread_setspecific=discard |
| |
| # Functions that take a callback (wrap the callback manually). |
| fun:pthread_create=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 |
| |
| # Ignores the dfsan wrappers. |
| fun:__dfsw_*=uninstrumented |
| fun:__dfsw_*=discard |