Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 1 | fun:main=uninstrumented |
| 2 | fun:main=discard |
| 3 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 4 | ############################################################################### |
| 5 | # DFSan interface functions |
| 6 | ############################################################################### |
Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 7 | fun:dfsan_union=uninstrumented |
| 8 | fun:dfsan_union=discard |
Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 9 | fun:dfsan_create_label=uninstrumented |
| 10 | fun:dfsan_create_label=discard |
Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 11 | fun:dfsan_set_label=uninstrumented |
| 12 | fun:dfsan_set_label=discard |
Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 13 | fun:dfsan_add_label=uninstrumented |
| 14 | fun:dfsan_add_label=discard |
Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 15 | fun:dfsan_get_label=uninstrumented |
| 16 | fun:dfsan_get_label=custom |
Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 17 | fun:dfsan_read_label=uninstrumented |
| 18 | fun:dfsan_read_label=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 19 | fun:dfsan_get_label_count=uninstrumented |
| 20 | fun:dfsan_get_label_count=discard |
Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 21 | fun:dfsan_get_label_info=uninstrumented |
| 22 | fun:dfsan_get_label_info=discard |
Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 23 | fun:dfsan_has_label=uninstrumented |
| 24 | fun:dfsan_has_label=discard |
Peter Collingbourne | e8d2034 | 2013-08-14 18:54:06 +0000 | [diff] [blame] | 25 | fun:dfsan_has_label_with_desc=uninstrumented |
| 26 | fun:dfsan_has_label_with_desc=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 27 | fun:dfsan_set_write_callback=uninstrumented |
| 28 | fun:dfsan_set_write_callback=custom |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 29 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 30 | ############################################################################### |
| 31 | # glibc |
| 32 | ############################################################################### |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 33 | fun:malloc=discard |
| 34 | fun:realloc=discard |
| 35 | fun:free=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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. |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 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 |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 48 | |
| 49 | # Functions that return a value that is data-dependent on the input. |
| 50 | fun:btowc=functional |
Peter Collingbourne | 223c838 | 2013-09-13 01:38:56 +0000 | [diff] [blame] | 51 | fun:exp=functional |
| 52 | fun:exp2=functional |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 53 | fun:fabs=functional |
| 54 | fun:finite=functional |
| 55 | fun:floor=functional |
| 56 | fun:fmod=functional |
| 57 | fun:isinf=functional |
| 58 | fun:isnan=functional |
Peter Collingbourne | 223c838 | 2013-09-13 01:38:56 +0000 | [diff] [blame] | 59 | fun:log=functional |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 60 | fun:modf=functional |
| 61 | fun:pow=functional |
| 62 | fun:round=functional |
Peter Collingbourne | 223c838 | 2013-09-13 01:38:56 +0000 | [diff] [blame] | 63 | fun:sqrt=functional |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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 |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 69 | fun:__ctype_b_loc=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 70 | fun:__cxa_atexit=discard |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 71 | fun:__errno_location=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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 |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 110 | fun:mmap=discard |
| 111 | fun:munmap=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 112 | fun:open=discard |
| 113 | fun:pipe=discard |
| 114 | fun:posix_fadvise=discard |
| 115 | fun:posix_memalign=discard |
| 116 | fun:prctl=discard |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 117 | fun:printf=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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 |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 125 | fun:sched_getcpu=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 126 | fun:sched_get_priority_max=discard |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 127 | fun:sched_setaffinity=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 128 | fun:sched_yield=discard |
| 129 | fun:sem_destroy=discard |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 130 | fun:sem_init=discard |
| 131 | fun:sem_post=discard |
| 132 | fun:sem_wait=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 133 | fun:send=discard |
| 134 | fun:sendmsg=discard |
| 135 | fun:sendto=discard |
| 136 | fun:setsockopt=discard |
| 137 | fun:shutdown=discard |
Peter Collingbourne | 223c838 | 2013-09-13 01:38:56 +0000 | [diff] [blame] | 138 | fun:sleep=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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 |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 147 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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 |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 154 | fun:fstat=custom |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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 |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 172 | fun:memcpy=custom |
| 173 | fun:memset=custom |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 174 | fun:strcpy=custom |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 175 | fun:strdup=custom |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 176 | fun:strncpy=custom |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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 |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 187 | fun:strcasecmp=custom |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 188 | fun:strchr=custom |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 189 | fun:strcmp=custom |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 190 | fun:strlen=custom |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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). |
Peter Collingbourne | 5fa3d5d | 2013-08-28 20:18:25 +0000 | [diff] [blame] | 201 | fun:dl_iterate_phdr=custom |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 202 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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 | |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 211 | # sprintf-like |
| 212 | fun:sprintf=custom |
| 213 | fun:snprintf=custom |
| 214 | |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 215 | # TODO: custom |
Peter Collingbourne | 6e4c46d | 2013-08-15 21:18:53 +0000 | [diff] [blame] | 216 | fun:asprintf=discard |
| 217 | fun:qsort=discard |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 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 |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 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 |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 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 |
Pirama Arumuga Nainar | 799172d | 2016-03-03 15:50:30 -0800 | [diff] [blame^] | 269 | # Similar for __sanitizer_cov_trace_switch |
| 270 | fun:__sanitizer_cov_trace_switch=custom |
| 271 | fun:__sanitizer_cov_trace_switch=uninstrumented |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 272 | |
| 273 | # Ignores all other __sanitizer callbacks. |
Pirama Arumuga Nainar | 799172d | 2016-03-03 15:50:30 -0800 | [diff] [blame^] | 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 |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 304 | |
| 305 | # Don't add extra parameters to the Fuzzer callback. |
| 306 | fun:LLVMFuzzerTestOneInput=uninstrumented |