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:btowc=functional
52fun:exp=functional
53fun:exp2=functional
54fun:fabs=functional
55fun:finite=functional
56fun:floor=functional
57fun:fmod=functional
58fun:isinf=functional
59fun:isnan=functional
60fun:log=functional
61fun:modf=functional
62fun:pow=functional
63fun:round=functional
64fun:sqrt=functional
65fun:wctob=functional
66
67# Functions that produce an output that does not depend on the input (shadow is
68# zeroed automatically).
69fun:__assert_fail=discard
70fun:__ctype_b_loc=discard
71fun:__cxa_atexit=discard
72fun:__errno_location=discard
73fun:__newlocale=discard
74fun:__sbrk=discard
75fun:__sigsetjmp=discard
76fun:__uselocale=discard
77fun:__wctype_l=discard
78fun:access=discard
79fun:alarm=discard
80fun:atexit=discard
81fun:bind=discard
82fun:chdir=discard
83fun:close=discard
84fun:closedir=discard
85fun:connect=discard
86fun:dladdr=discard
87fun:dlclose=discard
88fun:fclose=discard
89fun:feof=discard
90fun:ferror=discard
91fun:fflush=discard
92fun:fileno=discard
93fun:fopen=discard
94fun:fprintf=discard
95fun:fputc=discard
96fun:fputc=discard
97fun:fputs=discard
98fun:fputs=discard
99fun:fseek=discard
100fun:ftell=discard
101fun:fwrite=discard
102fun:getenv=discard
103fun:getuid=discard
104fun:geteuid=discard
105fun:getpagesize=discard
106fun:getpid=discard
107fun:kill=discard
108fun:listen=discard
109fun:lseek=discard
110fun:mkdir=discard
111fun:mmap=discard
112fun:munmap=discard
113fun:open=discard
114fun:pipe=discard
115fun:posix_fadvise=discard
116fun:posix_memalign=discard
117fun:prctl=discard
118fun:printf=discard
119fun:pthread_sigmask=discard
120fun:putc=discard
121fun:putchar=discard
122fun:puts=discard
123fun:rand=discard
124fun:random=discard
125fun:remove=discard
126fun:sched_getcpu=discard
127fun:sched_get_priority_max=discard
128fun:sched_setaffinity=discard
129fun:sched_yield=discard
130fun:sem_destroy=discard
131fun:sem_init=discard
132fun:sem_post=discard
133fun:sem_wait=discard
134fun:send=discard
135fun:sendmsg=discard
136fun:sendto=discard
137fun:setsockopt=discard
138fun:shutdown=discard
139fun:sleep=discard
140fun:socket=discard
141fun:strerror=discard
142fun:strspn=discard
143fun:strcspn=discard
144fun:symlink=discard
145fun:syscall=discard
146fun:unlink=discard
147fun:uselocale=discard
148
149# Functions that produce output does not depend on the input (need to zero the
150# shadow manually).
151fun:calloc=custom
152fun:clock_gettime=custom
153fun:dlopen=custom
154fun:fgets=custom
155fun:fstat=custom
156fun:getcwd=custom
157fun:get_current_dir_name=custom
158fun:gethostname=custom
159fun:getrlimit=custom
160fun:getrusage=custom
161fun:nanosleep=custom
162fun:pread=custom
163fun:read=custom
164fun:socketpair=custom
165fun:stat=custom
166fun:time=custom
167
168# Functions that produce an output that depend on the input (propagate the
169# shadow manually).
170fun:ctime_r=custom
171fun:inet_pton=custom
172fun:localtime_r=custom
173fun:memcpy=custom
174fun:memset=custom
175fun:strcpy=custom
176fun:strdup=custom
177fun:strncpy=custom
178fun:strtod=custom
179fun:strtol=custom
180fun:strtoll=custom
181fun:strtoul=custom
182fun:strtoull=custom
183
184# Functions that produce an output that is computed from the input, but is not
185# necessarily data dependent.
186fun:memchr=custom
187fun:memcmp=custom
188fun:strcasecmp=custom
189fun:strchr=custom
190fun:strcmp=custom
191fun:strlen=custom
192fun:strncasecmp=custom
193fun:strncmp=custom
194fun:strrchr=custom
195fun:strstr=custom
196
197# Functions which take action based on global state, such as running a callback
198# set by a sepperate function.
199fun:write=custom
200
201# Functions that take a callback (wrap the callback manually).
202fun:dl_iterate_phdr=custom
203
204fun:getpwuid_r=custom
205fun:poll=custom
206fun:sched_getaffinity=custom
207fun:select=custom
208fun:sigemptyset=custom
209fun:sigaction=custom
210fun:gettimeofday=custom
211
212# sprintf-like
213fun:sprintf=custom
214fun:snprintf=custom
215
216# TODO: custom
217fun:asprintf=discard
218fun:qsort=discard
219
220###############################################################################
221# pthread
222###############################################################################
223fun:pthread_equal=discard
224fun:pthread_getspecific=discard
225fun:pthread_key_create=discard
226fun:pthread_key_delete=discard
227fun:pthread_mutex_destroy=discard
228fun:pthread_mutex_init=discard
229fun:pthread_mutex_lock=discard
230fun:pthread_mutex_trylock=discard
231fun:pthread_mutex_unlock=discard
232fun:pthread_mutexattr_destroy=discard
233fun:pthread_mutexattr_init=discard
234fun:pthread_mutexattr_settype=discard
235fun:pthread_once=discard
236fun:pthread_self=discard
237fun:pthread_setspecific=discard
238
239# Functions that take a callback (wrap the callback manually).
240fun:pthread_create=custom
241
242###############################################################################
243# libffi/libgo
244###############################################################################
245# Functions that are written in asm or are called from asm.
246fun:ffi_call_unix64=uninstrumented
247fun:ffi_call_unix64=discard
248fun:ffi_closure_unix64_inner=uninstrumented
249fun:ffi_closure_unix64_inner=discard
250fun:ffi_closure_unix64=uninstrumented
251fun:ffi_closure_unix64=discard
252fun:__go_get_closure=uninstrumented
253fun:__go_get_closure=discard
254fun:__go_makefunc_can_recover=uninstrumented
255fun:__go_makefunc_can_recover=discard
256fun:__go_makefunc_returning=uninstrumented
257fun:__go_makefunc_returning=discard
258fun:reflect.MakeFuncStubGo=uninstrumented
259fun:reflect.MakeFuncStubGo=discard
260fun:reflect.makeFuncStub=uninstrumented
261fun:reflect.makeFuncStub=discard
262
263
264###############################################################################
265# lib/Fuzzer
266###############################################################################
267# Replaces __sanitizer_cov_trace_cmp with __dfsw___sanitizer_cov_trace_cmp
268fun:__sanitizer_cov_trace_cmp1=custom
269fun:__sanitizer_cov_trace_cmp1=uninstrumented
270fun:__sanitizer_cov_trace_cmp2=custom
271fun:__sanitizer_cov_trace_cmp2=uninstrumented
272fun:__sanitizer_cov_trace_cmp4=custom
273fun:__sanitizer_cov_trace_cmp4=uninstrumented
274fun:__sanitizer_cov_trace_cmp8=custom
275fun:__sanitizer_cov_trace_cmp8=uninstrumented
276fun:__sanitizer_cov_trace_const_cmp1=custom
277fun:__sanitizer_cov_trace_const_cmp1=uninstrumented
278fun:__sanitizer_cov_trace_const_cmp2=custom
279fun:__sanitizer_cov_trace_const_cmp2=uninstrumented
280fun:__sanitizer_cov_trace_const_cmp4=custom
281fun:__sanitizer_cov_trace_const_cmp4=uninstrumented
282fun:__sanitizer_cov_trace_const_cmp8=custom
283fun:__sanitizer_cov_trace_const_cmp8=uninstrumented
284# Similar for __sanitizer_cov_trace_switch
285fun:__sanitizer_cov_trace_switch=custom
286fun:__sanitizer_cov_trace_switch=uninstrumented
287
288# Ignores all other __sanitizer callbacks.
289fun:__sanitizer_cov=uninstrumented
290fun:__sanitizer_cov=discard
291fun:__sanitizer_cov_module_init=uninstrumented
292fun:__sanitizer_cov_module_init=discard
293fun:__sanitizer_cov_with_check=uninstrumented
294fun:__sanitizer_cov_with_check=discard
295fun:__sanitizer_set_death_callback=uninstrumented
296fun:__sanitizer_set_death_callback=discard
297fun:__sanitizer_update_counter_bitset_and_clear_counters=uninstrumented
298fun:__sanitizer_update_counter_bitset_and_clear_counters=discard
299fun:__sanitizer_cov_trace_pc*=uninstrumented
300fun:__sanitizer_cov_trace_pc*=discard
301fun:__sanitizer_cov_pcs_init=uninstrumented
302fun:__sanitizer_cov_pcs_init=discard
303
304# Ignores the dfsan wrappers.
305fun:__dfsw_*=uninstrumented
306fun:__dfsw_*=discard
307