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