|
49 | 49 | # define SI_FREEBSD 0 |
50 | 50 | #endif |
51 | 51 |
|
| 52 | +#if SANITIZER_NETBSD |
| 53 | +# define SI_NETBSD 1 |
| 54 | +#else |
| 55 | +# define SI_NETBSD 0 |
| 56 | +#endif |
| 57 | + |
52 | 58 | #if SANITIZER_LINUX |
53 | 59 | # define SI_LINUX 1 |
54 | 60 | #else |
|
111 | 117 | #define SANITIZER_INTERCEPT_MEMMEM \ |
112 | 118 | SI_NOT_WINDOWS && !SI_MAC_DEPLOYMENT_BELOW_10_7 |
113 | 119 | #define SANITIZER_INTERCEPT_MEMCHR 1 |
114 | | -#define SANITIZER_INTERCEPT_MEMRCHR SI_FREEBSD || SI_LINUX |
| 120 | +#define SANITIZER_INTERCEPT_MEMRCHR SI_FREEBSD || SI_LINUX || SI_NETBSD |
115 | 121 |
|
116 | 122 | #define SANITIZER_INTERCEPT_READ SI_NOT_WINDOWS |
117 | 123 | #define SANITIZER_INTERCEPT_PREAD SI_NOT_WINDOWS |
|
127 | 133 | #define SANITIZER_INTERCEPT_READV SI_NOT_WINDOWS |
128 | 134 | #define SANITIZER_INTERCEPT_WRITEV SI_NOT_WINDOWS |
129 | 135 |
|
130 | | -#define SANITIZER_INTERCEPT_PREADV SI_FREEBSD || SI_LINUX_NOT_ANDROID |
| 136 | +#define SANITIZER_INTERCEPT_PREADV \ |
| 137 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID |
131 | 138 | #define SANITIZER_INTERCEPT_PWRITEV SI_LINUX_NOT_ANDROID |
132 | 139 | #define SANITIZER_INTERCEPT_PREADV64 SI_LINUX_NOT_ANDROID |
133 | 140 | #define SANITIZER_INTERCEPT_PWRITEV64 SI_LINUX_NOT_ANDROID |
|
142 | 149 |
|
143 | 150 | #ifndef SANITIZER_INTERCEPT_PRINTF |
144 | 151 | # define SANITIZER_INTERCEPT_PRINTF SI_NOT_WINDOWS |
145 | | -# define SANITIZER_INTERCEPT_PRINTF_L SI_FREEBSD |
| 152 | +# define SANITIZER_INTERCEPT_PRINTF_L SI_FREEBSD || SI_NETBSD |
146 | 153 | # define SANITIZER_INTERCEPT_ISOC99_PRINTF SI_LINUX_NOT_ANDROID |
147 | 154 | #endif |
148 | 155 |
|
|
151 | 158 |
|
152 | 159 | #define SANITIZER_INTERCEPT_GETPWNAM_AND_FRIENDS SI_NOT_WINDOWS |
153 | 160 | #define SANITIZER_INTERCEPT_GETPWNAM_R_AND_FRIENDS \ |
154 | | - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
| 161 | + SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
155 | 162 | #define SANITIZER_INTERCEPT_GETPWENT \ |
156 | | - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
| 163 | + SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
157 | 164 | #define SANITIZER_INTERCEPT_FGETPWENT SI_LINUX_NOT_ANDROID |
158 | | -#define SANITIZER_INTERCEPT_GETPWENT_R SI_FREEBSD || SI_LINUX_NOT_ANDROID |
| 165 | +#define SANITIZER_INTERCEPT_GETPWENT_R \ |
| 166 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID |
159 | 167 | #define SANITIZER_INTERCEPT_SETPWENT SI_MAC || SI_LINUX_NOT_ANDROID |
160 | | -#define SANITIZER_INTERCEPT_CLOCK_GETTIME SI_FREEBSD || SI_LINUX |
| 168 | +#define SANITIZER_INTERCEPT_CLOCK_GETTIME SI_FREEBSD || SI_NETBSD || SI_LINUX |
161 | 169 | #define SANITIZER_INTERCEPT_GETITIMER SI_NOT_WINDOWS |
162 | 170 | #define SANITIZER_INTERCEPT_TIME SI_NOT_WINDOWS |
163 | 171 | #define SANITIZER_INTERCEPT_GLOB SI_LINUX_NOT_ANDROID |
|
200 | 208 | #define SANITIZER_INTERCEPT_MBSNRTOWCS SI_MAC || SI_LINUX_NOT_ANDROID |
201 | 209 | #define SANITIZER_INTERCEPT_WCSTOMBS SI_NOT_WINDOWS |
202 | 210 | #define SANITIZER_INTERCEPT_WCSNRTOMBS \ |
203 | | - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
| 211 | + SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
204 | 212 | #define SANITIZER_INTERCEPT_WCRTOMB \ |
205 | | - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
| 213 | + SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
206 | 214 | #define SANITIZER_INTERCEPT_TCGETATTR SI_LINUX_NOT_ANDROID |
207 | 215 | #define SANITIZER_INTERCEPT_REALPATH SI_NOT_WINDOWS |
208 | 216 | #define SANITIZER_INTERCEPT_CANONICALIZE_FILE_NAME SI_LINUX_NOT_ANDROID |
209 | 217 | #define SANITIZER_INTERCEPT_CONFSTR \ |
210 | | - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
| 218 | + SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
211 | 219 | #define SANITIZER_INTERCEPT_SCHED_GETAFFINITY SI_LINUX_NOT_ANDROID |
212 | 220 | #define SANITIZER_INTERCEPT_SCHED_GETPARAM SI_LINUX_NOT_ANDROID |
213 | 221 | #define SANITIZER_INTERCEPT_STRERROR SI_NOT_WINDOWS |
214 | 222 | #define SANITIZER_INTERCEPT_STRERROR_R SI_NOT_WINDOWS |
215 | 223 | #define SANITIZER_INTERCEPT_XPG_STRERROR_R SI_LINUX_NOT_ANDROID |
216 | 224 | #define SANITIZER_INTERCEPT_SCANDIR \ |
217 | | - SI_FREEBSD || SI_LINUX_NOT_ANDROID |
| 225 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID |
218 | 226 | #define SANITIZER_INTERCEPT_SCANDIR64 SI_LINUX_NOT_ANDROID |
219 | 227 | #define SANITIZER_INTERCEPT_GETGROUPS SI_NOT_WINDOWS |
220 | 228 | #define SANITIZER_INTERCEPT_POLL SI_NOT_WINDOWS |
221 | 229 | #define SANITIZER_INTERCEPT_PPOLL SI_LINUX_NOT_ANDROID |
222 | 230 | #define SANITIZER_INTERCEPT_WORDEXP \ |
223 | | - SI_FREEBSD || (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID |
| 231 | + SI_FREEBSD || SI_NETBSD || (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID |
224 | 232 | #define SANITIZER_INTERCEPT_SIGWAIT SI_NOT_WINDOWS |
225 | 233 | #define SANITIZER_INTERCEPT_SIGWAITINFO SI_LINUX_NOT_ANDROID |
226 | 234 | #define SANITIZER_INTERCEPT_SIGTIMEDWAIT SI_LINUX_NOT_ANDROID |
227 | 235 | #define SANITIZER_INTERCEPT_SIGSETOPS \ |
228 | | - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
| 236 | + SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
229 | 237 | #define SANITIZER_INTERCEPT_SIGPENDING SI_NOT_WINDOWS |
230 | 238 | #define SANITIZER_INTERCEPT_SIGPROCMASK SI_NOT_WINDOWS |
231 | | -#define SANITIZER_INTERCEPT_BACKTRACE SI_FREEBSD || SI_LINUX_NOT_ANDROID |
| 239 | +#define SANITIZER_INTERCEPT_BACKTRACE \ |
| 240 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID |
232 | 241 | #define SANITIZER_INTERCEPT_GETMNTENT SI_LINUX |
233 | 242 | #define SANITIZER_INTERCEPT_GETMNTENT_R SI_LINUX_NOT_ANDROID |
234 | 243 | #define SANITIZER_INTERCEPT_STATFS SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
235 | 244 | #define SANITIZER_INTERCEPT_STATFS64 \ |
236 | 245 | (SI_MAC && !SI_IOS) || SI_LINUX_NOT_ANDROID |
237 | | -#define SANITIZER_INTERCEPT_STATVFS SI_FREEBSD || SI_LINUX_NOT_ANDROID |
| 246 | +#define SANITIZER_INTERCEPT_STATVFS \ |
| 247 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID |
238 | 248 | #define SANITIZER_INTERCEPT_STATVFS64 SI_LINUX_NOT_ANDROID |
239 | 249 | #define SANITIZER_INTERCEPT_INITGROUPS SI_NOT_WINDOWS |
240 | 250 | #define SANITIZER_INTERCEPT_ETHER_NTOA_ATON SI_NOT_WINDOWS |
241 | 251 | #define SANITIZER_INTERCEPT_ETHER_HOST \ |
242 | 252 | SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
243 | 253 | #define SANITIZER_INTERCEPT_ETHER_R SI_FREEBSD || SI_LINUX_NOT_ANDROID |
244 | 254 | #define SANITIZER_INTERCEPT_SHMCTL \ |
245 | | - ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && SANITIZER_WORDSIZE == 64) |
| 255 | + SI_NETBSD || \ |
| 256 | + ((SI_FREEBSD || SI_LINUX_NOT_ANDROID) && SANITIZER_WORDSIZE == 64) |
246 | 257 | #define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID |
247 | 258 | #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_NOT_WINDOWS |
248 | 259 | #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GETINHERITSCHED \ |
249 | | - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
| 260 | + SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
250 | 261 | #define SANITIZER_INTERCEPT_PTHREAD_ATTR_GETAFFINITY_NP SI_LINUX_NOT_ANDROID |
251 | 262 | #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPSHARED SI_NOT_WINDOWS |
252 | 263 | #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETTYPE SI_NOT_WINDOWS |
253 | 264 | #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPROTOCOL \ |
254 | | - SI_MAC || SI_LINUX_NOT_ANDROID |
| 265 | + SI_MAC || SI_NETBSD || SI_LINUX_NOT_ANDROID |
255 | 266 | #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETPRIOCEILING \ |
256 | | - SI_MAC || SI_LINUX_NOT_ANDROID |
| 267 | + SI_MAC || SI_NETBSD || SI_LINUX_NOT_ANDROID |
257 | 268 | #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETROBUST SI_LINUX_NOT_ANDROID |
258 | 269 | #define SANITIZER_INTERCEPT_PTHREAD_MUTEXATTR_GETROBUST_NP SI_LINUX_NOT_ANDROID |
259 | 270 | #define SANITIZER_INTERCEPT_PTHREAD_RWLOCKATTR_GETPSHARED SI_NOT_WINDOWS |
|
272 | 283 | #define SANITIZER_INTERCEPT_LGAMMAL_R SI_LINUX_NOT_ANDROID |
273 | 284 | #define SANITIZER_INTERCEPT_DRAND48_R SI_LINUX_NOT_ANDROID |
274 | 285 | #define SANITIZER_INTERCEPT_RAND_R \ |
275 | | - SI_FREEBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
276 | | -#define SANITIZER_INTERCEPT_ICONV SI_FREEBSD || SI_LINUX_NOT_ANDROID |
| 286 | + SI_FREEBSD || SI_NETBSD || SI_MAC || SI_LINUX_NOT_ANDROID |
| 287 | +#define SANITIZER_INTERCEPT_ICONV \ |
| 288 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID |
277 | 289 | #define SANITIZER_INTERCEPT_TIMES SI_NOT_WINDOWS |
278 | 290 |
|
279 | 291 | // FIXME: getline seems to be available on OSX 10.7 |
280 | | -#define SANITIZER_INTERCEPT_GETLINE SI_FREEBSD || SI_LINUX_NOT_ANDROID |
| 292 | +#define SANITIZER_INTERCEPT_GETLINE \ |
| 293 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID |
281 | 294 |
|
282 | | -#define SANITIZER_INTERCEPT__EXIT SI_LINUX || SI_FREEBSD || SI_MAC |
| 295 | +#define SANITIZER_INTERCEPT__EXIT SI_LINUX || SI_FREEBSD || SI_NETBSD || SI_MAC |
283 | 296 |
|
284 | 297 | #define SANITIZER_INTERCEPT_PHTREAD_MUTEX SI_NOT_WINDOWS |
285 | 298 | #define SANITIZER_INTERCEPT_PTHREAD_SETNAME_NP \ |
286 | | - SI_FREEBSD || SI_LINUX_NOT_ANDROID |
| 299 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID |
287 | 300 |
|
288 | 301 | #define SANITIZER_INTERCEPT_TLS_GET_ADDR \ |
289 | | - SI_FREEBSD || SI_LINUX_NOT_ANDROID |
| 302 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID |
290 | 303 |
|
291 | 304 | #define SANITIZER_INTERCEPT_LISTXATTR SI_LINUX |
292 | 305 | #define SANITIZER_INTERCEPT_GETXATTR SI_LINUX |
293 | 306 | #define SANITIZER_INTERCEPT_GETRESID SI_LINUX |
294 | 307 | #define SANITIZER_INTERCEPT_GETIFADDRS \ |
295 | | - SI_FREEBSD || SI_LINUX_NOT_ANDROID || SI_MAC |
| 308 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID || SI_MAC |
296 | 309 | #define SANITIZER_INTERCEPT_IF_INDEXTONAME \ |
297 | | - SI_FREEBSD || SI_LINUX_NOT_ANDROID || SI_MAC |
| 310 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID || SI_MAC |
298 | 311 | #define SANITIZER_INTERCEPT_CAPGET SI_LINUX_NOT_ANDROID |
299 | 312 | #if SI_LINUX && defined(__arm__) |
300 | 313 | #define SANITIZER_INTERCEPT_AEABI_MEM 1 |
301 | 314 | #else |
302 | 315 | #define SANITIZER_INTERCEPT_AEABI_MEM 0 |
303 | 316 | #endif |
304 | 317 | #define SANITIZER_INTERCEPT___BZERO SI_MAC |
305 | | -#define SANITIZER_INTERCEPT_FTIME !SI_FREEBSD && SI_NOT_WINDOWS |
| 318 | +#define SANITIZER_INTERCEPT_FTIME !SI_FREEBSD && !SI_NETBSD && SI_NOT_WINDOWS |
306 | 319 | #define SANITIZER_INTERCEPT_XDR SI_LINUX_NOT_ANDROID |
307 | | -#define SANITIZER_INTERCEPT_TSEARCH SI_LINUX_NOT_ANDROID || SI_MAC |
| 320 | +#define SANITIZER_INTERCEPT_TSEARCH SI_LINUX_NOT_ANDROID || SI_MAC || SI_NETBSD |
308 | 321 | #define SANITIZER_INTERCEPT_LIBIO_INTERNALS SI_LINUX_NOT_ANDROID |
309 | 322 | #define SANITIZER_INTERCEPT_FOPEN SI_NOT_WINDOWS |
310 | 323 | #define SANITIZER_INTERCEPT_FOPEN64 SI_LINUX_NOT_ANDROID |
311 | | -#define SANITIZER_INTERCEPT_OPEN_MEMSTREAM SI_LINUX_NOT_ANDROID |
| 324 | +#define SANITIZER_INTERCEPT_OPEN_MEMSTREAM SI_LINUX_NOT_ANDROID || SI_NETBSD |
312 | 325 | #define SANITIZER_INTERCEPT_OBSTACK SI_LINUX_NOT_ANDROID |
313 | 326 | #define SANITIZER_INTERCEPT_FFLUSH SI_NOT_WINDOWS |
314 | 327 | #define SANITIZER_INTERCEPT_FCLOSE SI_NOT_WINDOWS |
315 | 328 |
|
316 | 329 | #ifndef SANITIZER_INTERCEPT_DLOPEN_DLCLOSE |
317 | 330 | #define SANITIZER_INTERCEPT_DLOPEN_DLCLOSE \ |
318 | | - SI_FREEBSD || SI_LINUX_NOT_ANDROID || SI_MAC |
| 331 | + SI_FREEBSD || SI_NETBSD || SI_LINUX_NOT_ANDROID || SI_MAC |
319 | 332 | #endif |
320 | 333 |
|
321 | | -#define SANITIZER_INTERCEPT_GETPASS SI_LINUX_NOT_ANDROID || SI_MAC |
| 334 | +#define SANITIZER_INTERCEPT_GETPASS SI_LINUX_NOT_ANDROID || SI_MAC || SI_NETBSD |
322 | 335 | #define SANITIZER_INTERCEPT_TIMERFD SI_LINUX_NOT_ANDROID |
323 | 336 |
|
324 | 337 | #define SANITIZER_INTERCEPT_MLOCKX SI_NOT_WINDOWS |
325 | 338 | #define SANITIZER_INTERCEPT_FOPENCOOKIE SI_LINUX_NOT_ANDROID |
326 | | -#define SANITIZER_INTERCEPT_SEM SI_LINUX || SI_FREEBSD |
| 339 | +#define SANITIZER_INTERCEPT_SEM SI_LINUX || SI_FREEBSD || SI_NETBSD |
327 | 340 | #define SANITIZER_INTERCEPT_PTHREAD_SETCANCEL SI_NOT_WINDOWS |
328 | | -#define SANITIZER_INTERCEPT_MINCORE SI_LINUX |
| 341 | +#define SANITIZER_INTERCEPT_MINCORE SI_LINUX || SI_NETBSD |
329 | 342 | #define SANITIZER_INTERCEPT_PROCESS_VM_READV SI_LINUX |
330 | | -#define SANITIZER_INTERCEPT_CTERMID SI_LINUX || SI_MAC || SI_FREEBSD |
| 343 | +#define SANITIZER_INTERCEPT_CTERMID \ |
| 344 | + SI_LINUX || SI_MAC || SI_FREEBSD || SI_NETBSD |
331 | 345 | #define SANITIZER_INTERCEPT_CTERMID_R SI_MAC || SI_FREEBSD |
332 | 346 |
|
333 | 347 | #define SANITIZER_INTERCEPTOR_HOOKS SI_LINUX || SI_MAC || SI_WINDOWS |
334 | 348 | #define SANITIZER_INTERCEPT_RECV_RECVFROM SI_NOT_WINDOWS |
335 | 349 | #define SANITIZER_INTERCEPT_SEND_SENDTO SI_NOT_WINDOWS |
336 | 350 | #define SANITIZER_INTERCEPT_EVENTFD_READ_WRITE SI_LINUX |
337 | 351 |
|
338 | | -#define SANITIZER_INTERCEPT_STAT (SI_FREEBSD || SI_MAC || SI_ANDROID) |
| 352 | +#define SANITIZER_INTERCEPT_STAT \ |
| 353 | + (SI_FREEBSD || SI_MAC || SI_ANDROID || SI_NETBSD) |
339 | 354 | #define SANITIZER_INTERCEPT___XSTAT !SANITIZER_INTERCEPT_STAT && SI_NOT_WINDOWS |
340 | 355 | #define SANITIZER_INTERCEPT___XSTAT64 SI_LINUX_NOT_ANDROID |
341 | 356 | #define SANITIZER_INTERCEPT___LXSTAT SANITIZER_INTERCEPT___XSTAT |
|
345 | 360 | #define SANITIZER_INTERCEPT_UTMPX SI_LINUX_NOT_ANDROID || SI_MAC || SI_FREEBSD |
346 | 361 |
|
347 | 362 | #define SANITIZER_INTERCEPT_GETLOADAVG \ |
348 | | - SI_LINUX_NOT_ANDROID || SI_MAC || SI_FREEBSD |
| 363 | + SI_LINUX_NOT_ANDROID || SI_MAC || SI_FREEBSD || SI_NETBSD |
349 | 364 |
|
350 | | -#define SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO (!SI_FREEBSD && !SI_MAC) |
351 | | -#define SANITIZER_INTERCEPT_MEMALIGN (!SI_FREEBSD && !SI_MAC) |
352 | | -#define SANITIZER_INTERCEPT_PVALLOC (!SI_FREEBSD && !SI_MAC) |
353 | | -#define SANITIZER_INTERCEPT_CFREE (!SI_FREEBSD && !SI_MAC) |
| 365 | +#define SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO \ |
| 366 | + (!SI_FREEBSD && !SI_MAC && !SI_NETBSD) |
| 367 | +#define SANITIZER_INTERCEPT_MEMALIGN (!SI_FREEBSD && !SI_MAC && !SI_NETBSD) |
| 368 | +#define SANITIZER_INTERCEPT_PVALLOC (!SI_FREEBSD && !SI_MAC && !SI_NETBSD) |
| 369 | +#define SANITIZER_INTERCEPT_CFREE (!SI_FREEBSD && !SI_MAC && !SI_NETBSD) |
354 | 370 | #define SANITIZER_INTERCEPT_ALIGNED_ALLOC (!SI_MAC) |
355 | 371 | #define SANITIZER_INTERCEPT_MALLOC_USABLE_SIZE (!SI_MAC) |
356 | 372 | #define SANITIZER_INTERCEPT_MCHECK_MPROBE SI_LINUX_NOT_ANDROID |
|
0 commit comments