Kostya Serebryany
c19851ab6c
[asan] undo the previous commit since TLS hack breaks with signals... :(
...
llvm-svn: 190662
2013-09-13 06:15:02 +00:00
Kostya Serebryany
096413ba3b
[asan] use TLS on Linux to get the FakeStack. Saves 15% performance
...
llvm-svn: 190661
2013-09-13 06:04:18 +00:00
Kostya Serebryany
77caab4d7b
[asan] inline PoisonShadow in FakeStack to get ~10% speedup
...
llvm-svn: 190660
2013-09-13 05:57:58 +00:00
Peter Collingbourne
cdec0a8ad2
[dfsan] Add a few easy functions to the ABI list.
...
llvm-svn: 190653
2013-09-13 01:38:56 +00:00
Kostya Serebryany
7638aa135e
[asan] a bit of performance improvement in fake stack, generalized one test, fixed android build of another test
...
llvm-svn: 190606
2013-09-12 14:41:10 +00:00
Kostya Serebryany
627ea6391e
[asan] add a test for use-after-return and exceptions and fix it. Not 100% sure this is a complete fix, will keep looking for harder cases.
...
llvm-svn: 190603
2013-09-12 13:25:29 +00:00
Alexander Potapenko
9caa10d0c7
[ASan] Do not build asan_fake_stack_test.cc on OSX until https://code.google.com/p/address-sanitizer/issues/detail?id=222 is fixed.
...
llvm-svn: 190597
2013-09-12 09:46:56 +00:00
Kostya Serebryany
79d98a851b
[asan] limit the size of the fake stack with a reasonable constant. This fixes a failure when the main thread's stack is considered unlimited (very large).
...
llvm-svn: 190596
2013-09-12 09:08:13 +00:00
Kostya Serebryany
44441cc34b
[asan] (part 2) don't lazy-init fake_stack if we only need to check that fake_stack exists (should fix 32-bit builds)
...
llvm-svn: 190594
2013-09-12 08:47:00 +00:00
Kostya Serebryany
736bd08e05
[asan] don't lazy-init fake_stack if we only need to check that fake_stack exists (should fix 32-bit builds)
...
llvm-svn: 190593
2013-09-12 08:43:44 +00:00
Kostya Serebryany
628cda7367
[asan] hopefully make the FakeStack async-signal safe, enable the related test
...
llvm-svn: 190592
2013-09-12 08:34:50 +00:00
Evgeniy Stepanov
58dbe06230
[asan] Fix deadlock in stack unwinder on android/x86.
...
Fixes PR17116.
Patch by 林作健 (manjian2006 at gmail.com).
llvm-svn: 190590
2013-09-12 08:16:28 +00:00
Kostya Serebryany
e8f961e847
[asan] use xchg instead of CAS in FakeStack::Allocate (5% faster for this case)
...
llvm-svn: 190589
2013-09-12 07:28:42 +00:00
Kostya Serebryany
729c8dc65b
[asan] fully re-implement the FakeStack (use-after-return) to make it faster and async-signal-safe. The implementation is not yet complete (see FIXMEs) but the existing tests pass.
...
llvm-svn: 190588
2013-09-12 07:11:58 +00:00
Bill Wendling
a6ec07ce2d
Fix typo
...
llvm-svn: 190543
2013-09-11 19:35:32 +00:00
Daniel Jasper
333e0cb055
Revert r190520 as it wasn't the right fix.
...
llvm-svn: 190524
2013-09-11 12:53:04 +00:00
Daniel Jasper
2b3f143f23
Add empty virtual destructor...
...
... as this otherwise triggers -Wnon-virtual-dtor.
llvm-svn: 190520
2013-09-11 12:28:15 +00:00
Alexey Samsonov
4a2447fd81
[TSan] Use --whole-archive around TSan runtime in old TSan makefiles. Fix a Go build
...
llvm-svn: 190513
2013-09-11 11:06:06 +00:00
Alexey Samsonov
279283c064
[Sanitizer] build sanitizer_common library with -Wglobal-constructors
...
llvm-svn: 190504
2013-09-11 09:57:15 +00:00
Alexey Samsonov
e99a0b9b76
[TSan] Use Clang to compile and link TSan unit tests with TSan runtime
...
llvm-svn: 190503
2013-09-11 09:56:33 +00:00
Alexey Samsonov
d397a9ba1d
Fixup for r190410: use lazy initialization for symbolizer as some compilers emit global constructor to setup vptr
...
llvm-svn: 190414
2013-09-10 16:16:27 +00:00
Timur Iskhodzhanov
92702d8401
[ASan] Remove the explicit function prototypes for intercepted functions on Windows
...
llvm-svn: 190411
2013-09-10 14:42:15 +00:00
Alexey Samsonov
7a36e6126b
[Sanitizer] Refactor symbolization interface: use class instead of several functions. Move some code around to get rid of extra source files
...
llvm-svn: 190410
2013-09-10 14:36:16 +00:00
Kostya Serebryany
8fc35ca008
[asan] refactor the use-after-return API so that the size class is computed at compile time instead of at run-time. compiler-rt part
...
llvm-svn: 190406
2013-09-10 13:16:26 +00:00
Evgeniy Stepanov
df96e863de
[msan] bool -> int to make msan_interface.h C-compatible.
...
llvm-svn: 190402
2013-09-10 11:04:37 +00:00
Timur Iskhodzhanov
190784b21b
[ASan] Don't crash in DescribeHeapAddress if we don't know the current thread's ID
...
Also make DescribeThread easier to use.
This was firing on Dr.ASan runs, not sure how to repro InvalidTID in a simple test.
llvm-svn: 190392
2013-09-10 08:36:21 +00:00
Eli Friedman
abc1a5cb9b
Delete unused variables.
...
llvm-svn: 190383
2013-09-10 03:27:07 +00:00
Peter Collingbourne
0dca2e5ed1
[dfsan] Initial set of DFSAN_OPTIONS flags.
...
llvm-svn: 190379
2013-09-10 01:51:35 +00:00
Bill Wendling
97c22c3c92
Don't allow a NULL-length file. Try to revert to the buffered version.
...
llvm-svn: 190359
2013-09-09 22:25:46 +00:00
Evgeniy Stepanov
842fa3f80d
[msan] Intercept fstatat / fstatat64.
...
llvm-svn: 190306
2013-09-09 13:40:41 +00:00
Evgeniy Stepanov
cf02f171a9
[sanitizer] Fix PR17138.
...
strerror_r on OSX returns a positive error code when the errno value is
unknown. Buffer contents are initialized in any case.
llvm-svn: 190295
2013-09-09 08:58:54 +00:00
Evgeniy Stepanov
80cc27857b
[sanitizer] Delete extra whitespace.
...
llvm-svn: 190292
2013-09-09 06:18:07 +00:00
Alexey Samsonov
77029be19a
[ASan] fix one more memory leak in test case
...
llvm-svn: 190277
2013-09-08 14:01:07 +00:00
Alexey Samsonov
a302a1affc
[Sanitizer] Use generic configs for running sanitizer_common unit tests
...
llvm-svn: 190276
2013-09-08 13:52:07 +00:00
Alexey Samsonov
071cc9e89d
[ASan] turn on leak checking for ASan tests and fix a few discovered leaks
...
llvm-svn: 190274
2013-09-08 13:23:29 +00:00
Evgeniy Stepanov
73166796a3
[sanitizer] Avoid including any system headers in the system-header-free part of the runtime library.
...
llvm-svn: 190161
2013-09-06 15:34:17 +00:00
Evgeniy Stepanov
09d33c67e1
[sanitizer] Fix Android build.
...
Android actually has "__unused" macro defined in <cdefs.h>.
llvm-svn: 190160
2013-09-06 14:58:49 +00:00
Evgeniy Stepanov
5c1035e7fa
[sanitizer] A bunch of linux system call handlers.
...
llvm-svn: 190157
2013-09-06 14:20:01 +00:00
Alexander Potapenko
2a54274c25
[ASan] make the check for NULL more portable.
...
llvm-svn: 190139
2013-09-06 12:04:37 +00:00
Alexey Samsonov
6985f3f67b
Fix compiler warning introduced in r190022
...
llvm-svn: 190137
2013-09-06 11:08:12 +00:00
Alexey Samsonov
16516b9b00
Migrate ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS to new spelling - ATTRIBUTE_NO_SANITIZE_ADDRESS
...
llvm-svn: 190136
2013-09-06 11:07:33 +00:00
Kostya Serebryany
895ff83e47
[tsan] make calloc crash instead of returning 0 on overflow (controlled by the allocator_may_return_null flag)
...
llvm-svn: 190135
2013-09-06 11:04:14 +00:00
Kostya Serebryany
6c5b034d7b
[msan] make calloc crash instead of returning 0 on overflow (controlled by the allocator_may_return_null flag)
...
llvm-svn: 190132
2013-09-06 10:58:55 +00:00
Kostya Serebryany
e009ef4ac1
[asan] make calloc crash instead of returning 0 on overflow (controlled by the allocator_may_return_null flag)
...
llvm-svn: 190128
2013-09-06 09:51:50 +00:00
Kostya Serebryany
ada5a7b7ef
[sanitizer] make the allocator crash instead of returning 0 on huge size (controlled by the allocator_may_return_null flag)
...
llvm-svn: 190127
2013-09-06 09:25:11 +00:00
Kostya Serebryany
5e0b2085c8
[tsan] add colors to tsan output
...
llvm-svn: 190045
2013-09-05 11:23:27 +00:00
Reid Kleckner
d483c072af
sanitizers: Make sure Visual Studio gets error reports
...
Visual Studio appears to close stderr before launching a non-console
win32 program. This means we don't see any sanitizer reports. If
stderr printing fails, call OutputDebugStringA to get the reports into
the Visual Studio debugger console.
llvm-svn: 190030
2013-09-05 03:19:57 +00:00
Reid Kleckner
0071525492
asan: Add a wcslen interceptor mirroring strlen
...
Tested on Linux, since I can't build the tests on Windows yet.
llvm-svn: 190022
2013-09-05 01:13:49 +00:00
Kostya Serebryany
2e57127cf7
[asan] add a test that demonstrates why the current use-after-return is not signal-safe
...
llvm-svn: 189943
2013-09-04 14:39:43 +00:00
Kostya Serebryany
1f13414d45
[asan] make use-after-return handle very deep recursion; fixes 483.xalancbmk in UAR mode
...
llvm-svn: 189929
2013-09-04 10:59:32 +00:00