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