Sergey Matveev
6cb47a083b
[sanitizer] Support sandboxing in sanitizer coverage.
...
Summary:
Sandboxed code may now pass additional arguments to
__sanitizer_sandbox_on_notify() to force all coverage data to be dumped to a
single file (the default is one file per module). The user may supply a file or
socket to write to. The latter option can be used to broker out the file writing
functionality. If -1 is passed, we pre-open a file.
llvm-svn: 209121
2014-05-19 12:53:03 +00:00
Kostya Serebryany
7a733480c8
[asan] introduce interface function __sanitizer_verify_contiguous_container to verify annotations in vector-like containers
...
llvm-svn: 208092
2014-05-06 14:41:01 +00:00
Kostya Serebryany
8b530e10a1
[asan] make AsanCoverage lock-free (and AS-safe)
...
llvm-svn: 207630
2014-04-30 10:40:48 +00:00
Evgeniy Stepanov
fe250b0014
[msan] Prettify __msan_print_shadow.
...
Makes __msan_print_shadow output much more readable, adds origin info.
llvm-svn: 207622
2014-04-30 09:50:30 +00:00
Peter Collingbourne
16f2f18105
Add user-defined callback on write() calls.
...
Add dfsan_set_write_callback(), which sets a callback to be invoked when
a write() call is invoked within DFSan instrumented code.
Patch by Sam Kerner!
Differential Revision: http://reviews.llvm.org/D3268
llvm-svn: 207131
2014-04-24 17:42:16 +00:00
Kostya Serebryany
90527cb324
[asan] don't use bool in public interface, make sure the interface headers are usable in plain C
...
llvm-svn: 206160
2014-04-14 11:16:53 +00:00
Evgeniy Stepanov
2dcb5c0a2c
[msan] Kill __msan_print_param_shadow.
...
It does not do what it's name says, and what it actually does is hard to
describe, and is not useful at all.
llvm-svn: 205415
2014-04-02 11:55:24 +00:00
Evgeniy Stepanov
80cb930c09
[msan] Add __msan_check_mem_is_initialized.
...
An assert()-like function that checks that a memory range is fully initialized.
llvm-svn: 205413
2014-04-02 11:50:42 +00:00
Evgeniy Stepanov
89602651e8
[msan] Implement __msan_set_death_callback.
...
llvm-svn: 204926
2014-03-27 14:04:58 +00:00
Peter Collingbourne
5d167dae7d
Add function to get the number of DFSan labels allocated.
...
Expose the number of DFSan labels allocated by adding function dfsan_get_label_count().
Patch by Sam Kerner!
Differential Revision: http://llvm-reviews.chandlerc.com/D3109
llvm-svn: 204854
2014-03-26 21:09:53 +00:00
Sergey Matveev
fa76f3b3a5
[MSan] Add __msan_unpoison_string() to the public interface.
...
Using __msan_unpoison() on null-terminated strings is awkward because
strlen() can't be called on a poisoned string. This case warrants a special
interface function.
llvm-svn: 204448
2014-03-21 10:12:17 +00:00
Evgeniy Stepanov
e0e980c748
[msan] Remove stubs for non-instrumented code from msan interface header.
...
llvm-svn: 201777
2014-02-20 11:43:00 +00:00
Alexey Samsonov
1181a104e6
[CMake] Rename several variables
...
llvm-svn: 201575
2014-02-18 14:28:53 +00:00
Kostya Serebryany
1ee681305f
[asan] introduce two functions that will allow implementations of C++ garbage colection to work with asan's fake stack
...
llvm-svn: 200908
2014-02-06 06:56:22 +00:00
Kostya Serebryany
06222915cf
[lsan] remove LeakSanitizerIsTurnedOffForTheCurrentProcess (this was a bad idea), leave __lsan_is_turned_off
...
llvm-svn: 199304
2014-01-15 08:04:21 +00:00
Evgeniy Stepanov
fc0ba53531
[msan] Fix an incorrect comment.
...
llvm-svn: 199300
2014-01-15 06:49:40 +00:00
Sergey Matveev
3a47244c94
[lsan] Add __lsan_default_suppressions() to the public interface header.
...
llvm-svn: 199121
2014-01-13 17:26:57 +00:00
Kostya Serebryany
e8699fcd8e
[sanitizer] fix comment
...
llvm-svn: 199112
2014-01-13 15:06:20 +00:00
Kostya Serebryany
27f5b8800d
[lsan] rename __lsan_is_turned_off to LeakSanitizerIsTurnedOffForTheCurrentProcess (leave the old variant for now for compatibility)
...
llvm-svn: 198921
2014-01-10 07:58:25 +00:00
Alexey Samsonov
cef2e14382
[ASan] Get rid of __asan_symbolize function
...
llvm-svn: 197670
2013-12-19 11:08:47 +00:00
Sergey Matveev
7237879926
[lsan] Introduce __lsan_(un)register_root_region().
...
Add an interface for telling LSan that a region of memory is to be treated as a
source of live pointers. Useful for code which stores pointers in mapped memory.
llvm-svn: 197489
2013-12-17 11:11:23 +00:00
Alexey Samsonov
4fc8098979
[TSan] Move declarations of __tsan_atomic functions to a public header
...
llvm-svn: 197015
2013-12-11 08:18:50 +00:00
Sergey Matveev
d8fb4d8f91
[sanitizer] Expose __sanitizer_print_stack_trace().
...
Expose a new interface function for debugging code built with sanitizer tools.
Add an ASan implementation.
llvm-svn: 196302
2013-12-03 18:24:28 +00:00
Kostya Serebryany
3771a3dd73
[asan] remove a fixed FIXME; extend the comment around __sanitizer_annotate_contiguous_container
...
llvm-svn: 195131
2013-11-19 14:54:14 +00:00
Kostya Serebryany
7b664299f0
[asan] new shadow poison magic for contiguous-container-buffer-overflow, addressed Alexey Samsonov's comments for r195011
...
llvm-svn: 195117
2013-11-19 08:40:07 +00:00
Kostya Serebryany
3d97c2040d
[asan] introduce __sanitizer_annotate_contiguous_container
...
llvm-svn: 195011
2013-11-18 14:02:05 +00:00
Alexey Samsonov
1011fe6a6e
CMake: make sure compiler-rt headers are copied to build tree if 'compilrer-rt' target is built
...
llvm-svn: 195002
2013-11-18 10:57:36 +00:00
Bob Wilson
a08e9ac927
Reapply asan coverage changes 194702-194704.
...
I still don't know what is causing our bootstrapped LTO buildbots to fail,
but llvm r194701 seems to be OK and I can't imagine that these changes could
cause the problem.
llvm-svn: 194790
2013-11-15 07:18:15 +00:00
Bob Wilson
abc91eacac
Speculatively revert asan coverage changes 194702-194704.
...
Apple's bootstrapped LTO builds have been failing, and these changes (along
with llvm 194701) are the only things on the blamelist. I will either reapply
these changes or help debug the problem, depending on whether this fixes the
buildbots.
llvm-svn: 194779
2013-11-15 03:26:28 +00:00
Kostya Serebryany
c46f281f83
[asan] unbreak dfsan, which includes sanitizer/common_interface_defs.h into internal sources (although it shoudn't)
...
llvm-svn: 194704
2013-11-14 13:44:43 +00:00
Kostya Serebryany
91c52d9552
[asan] Poor man's coverage that works with ASan (compiler-rt part)
...
llvm-svn: 194702
2013-11-14 13:28:17 +00:00
Dmitry Vyukov
2346c7a511
tsan: fix linux syscall hooks
...
the file references non-existent arguments and breaks build
llvm-svn: 193234
2013-10-23 08:40:19 +00:00
Dmitry Vyukov
67a1eef05b
tsan: remove __sanitizer_set_report_fd function from public interface
...
__sanitizer_set_report_path now accepts two special values - stderr and stdout
logging to other file descriptors is not supported anymore,
it's fragile in presence of multiple processes, fork, etc
llvm-svn: 192706
2013-10-15 14:14:34 +00:00
Dmitry Vyukov
1da6b4d5c8
tsan: intercept fork syscall
...
llvm-svn: 191144
2013-09-21 20:59:04 +00:00
Evgeniy Stepanov
2b31d7186e
[msan] Make all pointers in msan_interface "const volatile void *".
...
This way msan annotations can be used with both normal and volatile memory.
llvm-svn: 190403
2013-09-10 11:54:51 +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
Evgeniy Stepanov
5c1035e7fa
[sanitizer] A bunch of linux system call handlers.
...
llvm-svn: 190157
2013-09-06 14:20:01 +00:00
Peter Collingbourne
7da504faa4
[dfsan] Introduce dfsan_read_label runtime function.
...
Differential Revision: http://llvm-reviews.chandlerc.com/D1349
llvm-svn: 188319
2013-08-13 22:15:40 +00:00
Dmitry Vyukov
4ba287f328
dfsan: fix lint warning
...
llvm-svn: 188292
2013-08-13 16:52:07 +00:00
Peter Collingbourne
21b2929aca
[dfsan] Introduce dfsan_union runtime function.
...
Differential Revision: http://llvm-reviews.chandlerc.com/D1347
llvm-svn: 188229
2013-08-12 23:47:37 +00:00
Peter Collingbourne
5cbab07d02
DataFlowSanitizer; compiler-rt changes.
...
DataFlowSanitizer is a generalised dynamic data flow analysis.
Unlike other Sanitizer tools, this tool is not designed to detect a
specific class of bugs on its own. Instead, it provides a generic
dynamic data flow analysis framework to be used by clients to help
detect application-specific issues within their own code.
Differential Revision: http://llvm-reviews.chandlerc.com/D967
llvm-svn: 187924
2013-08-07 22:47:26 +00:00
Alexey Samsonov
b42ea7ef21
Lint fixes
...
llvm-svn: 187726
2013-08-05 13:20:39 +00:00
Evgeniy Stepanov
44b77c26e4
[msan] Allocator statistics interface and malloc hooks.
...
llvm-svn: 187653
2013-08-02 14:26:58 +00:00
Evgeniy Stepanov
3feb17c452
[sanitizer] Tweak read syscall handler signature for consistency.
...
llvm-svn: 187417
2013-07-30 13:16:52 +00:00
Evgeniy Stepanov
9fbd981f99
[sanitizer] read() syscall hook.
...
llvm-svn: 187414
2013-07-30 13:04:43 +00:00
Sergey Matveev
655bd0d08c
[lsan] Add __lsan_do_leak_check() to the public interface.
...
Let users override the normal behavior to run leak checking earlier in
the process. Also fix a couple nits here and there.
llvm-svn: 186581
2013-07-18 14:06:07 +00:00
Evgeniy Stepanov
f7f252d025
[sanitizer] Syscall handlers for clock_gettime and clock_getres.
...
llvm-svn: 185913
2013-07-09 08:54:59 +00:00
Alexey Samsonov
895784a5b0
[LSan] Add the way to disable LSan at link time
...
llvm-svn: 185066
2013-06-27 09:35:50 +00:00
Evgeniy Stepanov
ae4e1ec4e6
[msan] Add keep_going runtime flag.
...
llvm-svn: 184542
2013-06-21 12:37:58 +00:00
Alexey Samsonov
7e325fb477
Properly install LSan interface header, rely on sanitizer header presence in lit tests
...
llvm-svn: 183977
2013-06-14 11:45:36 +00:00