blob: e6c077ff1208cb2bd8867a036d3bef52abc2b9d9 [file] [log] [blame]
Peter Collingbournee8d20342013-08-14 18:54:06 +00001fun:main=uninstrumented
2fun:main=discard
3
Stephen Hines2d1fdb22014-05-28 23:58:16 -07004###############################################################################
5# DFSan interface functions
6###############################################################################
Peter Collingbournee8d20342013-08-14 18:54:06 +00007fun:dfsan_union=uninstrumented
8fun:dfsan_union=discard
Peter Collingbournee8d20342013-08-14 18:54:06 +00009fun:dfsan_create_label=uninstrumented
10fun:dfsan_create_label=discard
Peter Collingbournee8d20342013-08-14 18:54:06 +000011fun:dfsan_set_label=uninstrumented
12fun:dfsan_set_label=discard
Peter Collingbournee8d20342013-08-14 18:54:06 +000013fun:dfsan_add_label=uninstrumented
14fun:dfsan_add_label=discard
Peter Collingbournee8d20342013-08-14 18:54:06 +000015fun:dfsan_get_label=uninstrumented
16fun:dfsan_get_label=custom
Peter Collingbournee8d20342013-08-14 18:54:06 +000017fun:dfsan_read_label=uninstrumented
18fun:dfsan_read_label=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -070019fun:dfsan_get_label_count=uninstrumented
20fun:dfsan_get_label_count=discard
Peter Collingbournee8d20342013-08-14 18:54:06 +000021fun:dfsan_get_label_info=uninstrumented
22fun:dfsan_get_label_info=discard
Peter Collingbournee8d20342013-08-14 18:54:06 +000023fun:dfsan_has_label=uninstrumented
24fun:dfsan_has_label=discard
Peter Collingbournee8d20342013-08-14 18:54:06 +000025fun:dfsan_has_label_with_desc=uninstrumented
26fun:dfsan_has_label_with_desc=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -070027fun:dfsan_set_write_callback=uninstrumented
28fun:dfsan_set_write_callback=custom
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +000029
Stephen Hines2d1fdb22014-05-28 23:58:16 -070030###############################################################################
31# glibc
32###############################################################################
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +000033fun:malloc=discard
34fun:realloc=discard
35fun:free=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -070036
37# Functions that return a value that depends on the input, but the output might
38# not be necessarily data-dependent on the input.
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +000039fun: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
Stephen Hines2d1fdb22014-05-28 23:58:16 -070048
49# Functions that return a value that is data-dependent on the input.
50fun:btowc=functional
Peter Collingbourne223c8382013-09-13 01:38:56 +000051fun:exp=functional
52fun:exp2=functional
Stephen Hines2d1fdb22014-05-28 23:58:16 -070053fun:fabs=functional
54fun:finite=functional
55fun:floor=functional
56fun:fmod=functional
57fun:isinf=functional
58fun:isnan=functional
Peter Collingbourne223c8382013-09-13 01:38:56 +000059fun:log=functional
Stephen Hines2d1fdb22014-05-28 23:58:16 -070060fun:modf=functional
61fun:pow=functional
62fun:round=functional
Peter Collingbourne223c8382013-09-13 01:38:56 +000063fun:sqrt=functional
Stephen Hines2d1fdb22014-05-28 23:58:16 -070064fun: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
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +000069fun:__ctype_b_loc=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -070070fun:__cxa_atexit=discard
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +000071fun:__errno_location=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -070072fun:__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
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000110fun:mmap=discard
111fun:munmap=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700112fun:open=discard
113fun:pipe=discard
114fun:posix_fadvise=discard
115fun:posix_memalign=discard
116fun:prctl=discard
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000117fun:printf=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700118fun:pthread_sigmask=discard
119fun:putc=discard
120fun:putchar=discard
121fun:puts=discard
122fun:rand=discard
123fun:random=discard
124fun:remove=discard
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000125fun:sched_getcpu=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700126fun:sched_get_priority_max=discard
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000127fun:sched_setaffinity=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700128fun:sched_yield=discard
129fun:sem_destroy=discard
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000130fun:sem_init=discard
131fun:sem_post=discard
132fun:sem_wait=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700133fun:send=discard
134fun:sendmsg=discard
135fun:sendto=discard
136fun:setsockopt=discard
137fun:shutdown=discard
Peter Collingbourne223c8382013-09-13 01:38:56 +0000138fun:sleep=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700139fun:socket=discard
140fun:strerror=discard
141fun:strspn=discard
142fun:strcspn=discard
143fun:symlink=discard
144fun:syscall=discard
145fun:unlink=discard
146fun:uselocale=discard
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000147
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700148# 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
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000154fun:fstat=custom
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700155fun: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
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000172fun:memcpy=custom
173fun:memset=custom
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700174fun:strcpy=custom
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000175fun:strdup=custom
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000176fun:strncpy=custom
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700177fun: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
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000187fun:strcasecmp=custom
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000188fun:strchr=custom
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700189fun:strcmp=custom
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000190fun:strlen=custom
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700191fun: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).
Peter Collingbourne5fa3d5d2013-08-28 20:18:25 +0000201fun:dl_iterate_phdr=custom
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000202
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700203fun:getpwuid_r=custom
204fun:poll=custom
205fun:sched_getaffinity=custom
206fun:select=custom
207fun:sigemptyset=custom
208fun:sigaction=custom
209fun:gettimeofday=custom
210
Stephen Hines6d186232014-11-26 17:56:19 -0800211# sprintf-like
212fun:sprintf=custom
213fun:snprintf=custom
214
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000215# TODO: custom
Peter Collingbourne6e4c46d2013-08-15 21:18:53 +0000216fun:asprintf=discard
217fun:qsort=discard
Stephen Hines2d1fdb22014-05-28 23:58:16 -0700218
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
Stephen Hines6d186232014-11-26 17:56:19 -0800240
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
Pirama Arumuga Nainarcdce50b2015-07-01 12:26:56 -0700261
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
270# Ignores all other __sanitizer callbacks.
271fun:__sanitizer_*=uninstrumented
272fun:__sanitizer_*=discard
273
274# Don't add extra parameters to the Fuzzer callback.
275fun:LLVMFuzzerTestOneInput=uninstrumented