Evgeniy Stepanov
233455cba8
[sanitizer] Intercept strerror and strerror_r.
...
llvm-svn: 187978
2013-08-08 11:44:05 +00:00
Alexander Potapenko
ce32410097
[TSan] Let the users suppress use-after-free errors using the "race:" suppressions.
...
If there's a race between a memory access and a free() call in the client program,
it can be reported as a use-after-free (if the access occurs after the free()) or an ordinary race
(if free() occurs after the access).
We've decided to use a single "race:" prefix for both cases instead of introducing a "use-after-free:" one,
because in many cases this allows us to keep a single suppression for both the use-after-free and free-after-use.
This may be misleading if the use-after-free occurs in a non-racy way (e.g. in a single-threaded program).
But normally such bugs shall not be suppressed.
llvm-svn: 187885
2013-08-07 12:39:00 +00:00
Evgeniy Stepanov
04b7bff1fe
[sanitizer] Intercept sched_getaffinity.
...
Re-applying with a more reliable test case.
llvm-svn: 187876
2013-08-07 09:10:16 +00:00
David Blaikie
787e2b6499
Revert "[sanitizer] Intercept sched_getaffinity."
...
This reverts commit r187788.
The test case is unreliable (as the test may be run in a situation in
which it has no affinity with cpu0). This can be recommitted with a more
reliable test - possibly using CPU_COUNT != 0 instead (I wasn't entirely
sure that a process was guaranteed to have at least one affinity, though
it seems reasonable, or I'd have made the change myself).
llvm-svn: 187841
2013-08-07 00:37:26 +00:00
Evgeniy Stepanov
9f05e5e533
[sanitizer] Intercept sched_getaffinity.
...
llvm-svn: 187788
2013-08-06 09:29:01 +00:00
Evgeniy Stepanov
da9fd25603
[msan] Intercept confstr.
...
llvm-svn: 187412
2013-07-30 12:46:59 +00:00
Dmitry Vyukov
e9c456e15f
tsan: treat SIGSYS as synchronous signal
...
It is required for chromium sandboxing code.
From the description it seems to be indeed synchronous -- called back on syscall with incorrect arguments,
but seems to be unused in practice. So this should be fine.
llvm-svn: 186579
2013-07-18 13:14:11 +00:00
Dmitry Vyukov
c2e4e95580
tsan: disable one more interceptor that causes recursion
...
llvm-svn: 186497
2013-07-17 07:10:47 +00:00
Alexey Samsonov
9916aa2d95
[Sanitizer] move strcpy and strncpy to common interceptors
...
llvm-svn: 186408
2013-07-16 12:51:53 +00:00
Dmitry Vyukov
1a0c76fa55
tsan: support sigsuspend() call
...
Intercepting it makes it process pending signal before return.
llvm-svn: 186400
2013-07-16 11:28:04 +00:00
Evgeniy Stepanov
faba61a7bc
[sanitizer] Support GLOB_ALTDIRFUNC in glob interceptor.
...
llvm-svn: 185932
2013-07-09 12:07:59 +00:00
Evgeniy Stepanov
77ef78a0a5
[sanitizer] Intercept realpath and canonicalize_file_name.
...
Handle realpath(path, NULL) form.
llvm-svn: 185921
2013-07-09 09:53:37 +00:00
Evgeniy Stepanov
717e0cd2a7
[sanitizer] Intercept tcgetattr.
...
llvm-svn: 185626
2013-07-04 14:03:31 +00:00
Evgeniy Stepanov
db615c186f
[sanitizer] More interceptors.
...
bcopy
strtoimax, strtoumax
mbstowcs, mbsrtowcs, mbsnrtowcs
wcstombs, wcsrtombs, wcsnrtombs
llvm-svn: 185624
2013-07-04 13:19:41 +00:00
Evgeniy Stepanov
165d759a6a
[sanitizer] Intercept mbtowc, mbrtowc, get_current_dir_name.
...
Move getcwd to common interceptors.
llvm-svn: 185424
2013-07-02 13:34:44 +00:00
Evgeniy Stepanov
1df4dfe87a
[sanitizer] Intercept setlocale.
...
llvm-svn: 185416
2013-07-02 09:23:45 +00:00
Evgeniy Stepanov
8a4e24ea8b
[sanitizer] Intercept getnameinfo.
...
llvm-svn: 185338
2013-07-01 13:51:31 +00:00
Alexey Samsonov
8918140809
Hide mlock/munlock info message under verbosity flag.
...
llvm-svn: 185314
2013-07-01 08:25:29 +00:00
Richard Smith
079fe209f5
Fix typo found by Clang fix for extern "C" function handling.
...
llvm-svn: 185234
2013-06-28 22:28:37 +00:00
Evgeniy Stepanov
dec0f76c14
[sanitizer] Intercept ptrace.
...
llvm-svn: 185142
2013-06-28 11:02:43 +00:00
Dmitry Vyukov
d2cd2d018f
tsan: revert dynamic symbols file to the old incorrect one
...
full proper list of dynamic symbols crashes old gold (see bug 16468).
the culprit is 'memcpy' function, if it's added to syms file, gold crashes
llvm-svn: 185078
2013-06-27 13:56:37 +00:00
Dmitry Vyukov
b7c6f49364
tsan: remove non-existent functions from syms file
...
llvm-svn: 185077
2013-06-27 13:52:50 +00:00
Sergey Matveev
0b2ffe30e4
[tsan] Fix build.
...
llvm-svn: 184963
2013-06-26 16:49:34 +00:00
Sergey Matveev
d109eb052b
[tsan] Move some suppressions-related code to common.
...
Factor out code to be reused in LSan. Also switch from linked list to vector.
llvm-svn: 184957
2013-06-26 15:37:14 +00:00
Evgeniy Stepanov
06d6c25141
[sanitizer] readdir and readdir_r interceptors.
...
llvm-svn: 184950
2013-06-26 15:00:53 +00:00
Dmitry Vyukov
eb95448245
tsan: add missing __attribute__((visibility("default"))) to interface functions
...
llvm-svn: 184858
2013-06-25 15:36:25 +00:00
Dmitry Vyukov
b4711b2c24
tsan: update dynamic export syms file
...
now it includes proper functions (including interceptors)
and does not include local functions that lead to build failures
llvm-svn: 184747
2013-06-24 15:17:36 +00:00
Evgeniy Stepanov
60d964d4f2
[sanitizer] Intercept sysinfo.
...
llvm-svn: 184739
2013-06-24 14:25:33 +00:00
Evgeniy Stepanov
8fb2c264a2
[sanitizer] Fix TSan build.
...
llvm-svn: 184736
2013-06-24 14:03:13 +00:00
Evgeniy Stepanov
0e8053af08
[sanitizer] Intercept readv, preadv, writev, pwritev.
...
llvm-svn: 184717
2013-06-24 10:43:23 +00:00
Dmitry Vyukov
03ec9545f5
tsan: fix potential false positive race on fd
...
llvm-svn: 184430
2013-06-20 14:32:12 +00:00
Dmitry Vyukov
5cf581a8d4
tsan: consistently use return pc as top frame pc
...
always substract 1 from the top pc
this allows to get correct stacks with -O2
llvm-svn: 184112
2013-06-17 19:57:03 +00:00
Alexey Samsonov
0d7012debb
[TSan] use InternalMmapVector to store fired suppressions
...
llvm-svn: 183974
2013-06-14 11:18:58 +00:00
Dmitry Vyukov
26daccaddb
tsan: fix Windows Go crash
...
llvm-svn: 183898
2013-06-13 10:15:44 +00:00
Dmitry Vyukov
a8570d38fe
tsan: add -Wno-maybe-uninitialized to Go build script
...
this is how the rest of the codebase is built
llvm-svn: 183738
2013-06-11 11:44:43 +00:00
Dmitry Vyukov
315bb0e687
tsan: allows to suppress races on global variables
...
llvm-svn: 183672
2013-06-10 15:38:44 +00:00
Dmitry Vyukov
b19a26b852
tsan: disable getaddrinfo() interceptor for tsan (causes recursion)
...
llvm-svn: 183649
2013-06-10 11:35:08 +00:00
Dmitry Vyukov
ddb0294dd8
tsan: fix old gcc warnings
...
llvm-svn: 183645
2013-06-10 10:30:19 +00:00
Dmitry Vyukov
8794772337
tsan: more detailed trace for atomic operations (include address and memory ordering)
...
llvm-svn: 183643
2013-06-10 10:01:31 +00:00
Evgeniy Stepanov
0b1f41b6f4
[sanitizer] ioctl interceptor.
...
ASan: disabled by default
MSan: enabled by default
TSan: disabled
llvm-svn: 183517
2013-06-07 13:00:47 +00:00
Dmitry Vyukov
0fffc0088c
tsan: use memory access size for Go after all
...
helps to make range access functions correct and fast
llvm-svn: 183418
2013-06-06 14:31:15 +00:00
Dmitry Vyukov
5fe8a4f88f
tsan: always strip bottom frame in Go reports
...
llvm-svn: 183408
2013-06-06 13:31:35 +00:00
Evgeniy Stepanov
56050e8f69
[sanitizer] Fix __sanitizer_unaligned_* to work with unaligned data types.
...
llvm-svn: 183224
2013-06-04 13:49:10 +00:00
Evgeniy Stepanov
fc708db4c1
[sanitizer] Intercept getpeername.
...
llvm-svn: 182844
2013-05-29 11:49:25 +00:00
Evgeniy Stepanov
a4d08c4e87
[sanitizer] Move TSan and MSan recvmsg interceptors to common.
...
llvm-svn: 182843
2013-05-29 11:30:00 +00:00
Dmitry Vyukov
2b997d2914
tsan: match "race" suppressions against "race on vptr" reports
...
llvm-svn: 182842
2013-05-29 11:23:54 +00:00
Evgeniy Stepanov
f28217ad0e
[sanitizer] modf/modff/modfl interceptors.
...
llvm-svn: 182838
2013-05-29 10:03:11 +00:00
Alexey Samsonov
c30e2d6b3a
Make InternalAlloc/InternalFree in sanitizer runtimes libc-free by switching to a custom allocator.
...
llvm-svn: 182836
2013-05-29 09:15:39 +00:00
Evgeniy Stepanov
08f662845d
[sanitizer] Share TSan accept & accept4 interceptors with other sanitizers.
...
llvm-svn: 182835
2013-05-29 09:09:58 +00:00
Evgeniy Stepanov
bfbd37e6e7
[tsan] Remove -Wgnu from Makefile.old.
...
llvm-svn: 182580
2013-05-23 11:57:47 +00:00