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