Commit Graph

9 Commits

Author SHA1 Message Date
Kamil Rytarowski
90b46353e7 [Sanitizers] Use SANITIZER_* macros in lib/interception
Summary:
Unlike the rest of the sanitizer code, lib/interception uses native macros like __linux__
to check for specific targets instead of the common ones like SANITIZER_LINUX.

When working on the Solaris port of the sanitizers, the current style was found to not
only be inconsistent, but clumsy to use because the canonical way to check for Solaris
is to check for __sun__ && __svr4__ which is a mouthful.

Therefore, this patch switches to use SANITIZER_* macros instead.

Tested on x86_64-pc-linux-gnu.

Reviewers: kcc, vitalybuka

Reviewed By: vitalybuka

Subscribers: #sanitizers, srhines, krytarowski, llvm-commits, fedor.sergeev

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D39798

llvm-svn: 319906
2017-12-06 17:02:00 +00:00
Peter Collingbourne
0f43b92980 sanitizer_common: Try looking up symbols with RTLD_DEFAULT if RTLD_NEXT does not work.
If the lookup using RTLD_NEXT failed, the sanitizer runtime library
is later in the library search order than the DSO that we are trying
to intercept, which means that we cannot intercept this function. We
still want the address of the real definition, though, so look it up
using RTLD_DEFAULT.

Differential Revision: https://reviews.llvm.org/D39779

llvm-svn: 317930
2017-11-10 22:09:37 +00:00
Kamil Rytarowski
70a3511bd5 Reuse interception_linux for NetBSD
Summary:
Part of the code inspired by the original work on libsanitizer in GCC 5.4 by Christos Zoulas.

Sponsored by <The NetBSD Foundation>

Reviewers: joerg, kcc, vitalybuka, filcab

Reviewed By: vitalybuka

Subscribers: llvm-commits, #sanitizers

Tags: #sanitizers

Differential Revision: https://reviews.llvm.org/D36321

llvm-svn: 310351
2017-08-08 12:10:08 +00:00
Kostya Serebryany
04f2bf0f07 [sanitizer] Interception macros for sanitizers on FreeBSD; patch by Viktor Kutuzov
llvm-svn: 202009
2014-02-24 08:37:41 +00:00
Dmitry Vyukov
23b80ab87f asan: fix android build
android does not have dlvsym

llvm-svn: 189781
2013-09-03 07:53:49 +00:00
Dmitry Vyukov
3a6c7cea77 tsan: properly intercept pthread_cond functions
llvm-svn: 189767
2013-09-02 18:06:28 +00:00
Alexey Samsonov
0f840bd240 [Sanitizer] Workaround for a compiler warning - ISO C++ forbids casting pointer-to-function to pointer-to-object, so we use cast via integral type
llvm-svn: 161168
2012-08-02 11:19:13 +00:00
Dmitry Vyukov
7fb7330469 asan/tsan: weak interceptors
The idea isthat asan/tsan can survive if user intercepts the same functions. At the same time user has an ability to call back into asan/tsan runtime. See the following tests for examples:
asan/output_tests/interception_failure_test-linux.cc
asan/output_tests/interception_test-linux.cc
asan/output_tests/interception_malloc_test-linux.cc

llvm-svn: 157388
2012-05-24 13:54:31 +00:00
Kostya Serebryany
1dd4c606ed [asan] move lib/asan/interception to lib/interception so that other tools (e.g. tsan) can use it
llvm-svn: 156816
2012-05-15 12:21:33 +00:00