| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 182365
|
|
|
|
|
|
| |
unexpectedly smart on some hosts
llvm-svn: 182363
|
|
|
|
| |
llvm-svn: 182360
|
|
|
|
| |
llvm-svn: 182355
|
|
|
|
|
|
|
|
| |
on Darwin (and the problem used to occur on Linux).
Do not use zero-based shadow for the time() test.
llvm-svn: 182107
|
|
|
|
|
|
| |
handler instead of the SIGSEGV one)
llvm-svn: 182080
|
|
|
|
| |
llvm-svn: 182010
|
|
|
|
| |
llvm-svn: 182008
|
|
|
|
|
|
| |
installed by ASan
llvm-svn: 180255
|
|
|
|
|
|
| |
as this mode is thread-hostile
llvm-svn: 180106
|
|
|
|
|
|
| |
CHECK patterns.
llvm-svn: 180097
|
|
|
|
| |
llvm-svn: 179844
|
|
|
|
|
|
|
|
|
|
| |
This change adds ASan runtime option "strict-init-order" (off by default)
that makes init-order checker bark if global initializer accesses any global from different
translation unit (even if the latter is already initialized). strict init-order checking
doesn't play well with, e.g. LLVM registration machineries, and causes issue
https://code.google.com/p/address-sanitizer/issues/detail?id=178.
llvm-svn: 179843
|
|
|
|
|
|
| |
ASan checks addressability of syscall arguments. TSan does nothing for now.
llvm-svn: 179380
|
|
|
|
| |
llvm-svn: 179306
|
|
|
|
|
|
| |
sanitizer lit_tests depend on fresh headers.
llvm-svn: 179293
|
|
|
|
|
|
| |
to make the test more stable
llvm-svn: 179292
|
|
|
|
|
|
| |
this test
llvm-svn: 179286
|
|
|
|
| |
llvm-svn: 179281
|
|
|
|
|
|
| |
corresponding test. We still don't guarantee anything with regard to use-after-return checking
llvm-svn: 179278
|
|
|
|
| |
llvm-svn: 179273
|
|
|
|
| |
llvm-svn: 179271
|
|
|
|
|
|
| |
Add a test for time().
llvm-svn: 179177
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: samsonov
Reviewed By: samsonov
CC: samsonov, llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D652
llvm-svn: 179175
|
|
|
|
| |
llvm-svn: 179096
|
|
|
|
| |
llvm-svn: 179091
|
|
|
|
| |
llvm-svn: 179088
|
|
|
|
| |
llvm-svn: 178876
|
|
|
|
| |
llvm-svn: 178874
|
|
|
|
|
|
| |
-std=c++11 to a separate test case. Check that structs with no ctor but non-trivial dtor are ignored.
llvm-svn: 178857
|
|
|
|
|
|
| |
max_malloc_fill_size and malloc_fill_byte
llvm-svn: 178757
|
|
|
|
| |
llvm-svn: 178458
|
|
|
|
| |
llvm-svn: 178131
|
|
|
|
|
|
| |
tests; also add a test for use-after-poison
llvm-svn: 177993
|
|
|
|
| |
llvm-svn: 177868
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before: the function name was stored by the compiler as a constant string
and the run-time was printing it.
Now: the PC is stored instead and the run-time prints the full symbolized frame.
This adds a couple of instructions into every function with non-empty stack frame,
but also reduces the binary size because we store less strings (I saw 2% size reduction).
This change bumps the asan ABI version to v3.
compiler-rt part, llvm part will follow.
Example of report (now):
==31711==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fffa77cf1c5 at pc 0x41feb0 bp 0x7fffa77cefb0 sp 0x7fffa77cefa8
READ of size 1 at 0x7fffa77cf1c5 thread T0
#0 0x41feaf in Frame0(int, char*, char*, char*) stack-oob-frames.cc:20
#1 0x41f7ff in Frame1(int, char*, char*) stack-oob-frames.cc:24
#2 0x41f477 in Frame2(int, char*) stack-oob-frames.cc:28
#3 0x41f194 in Frame3(int) stack-oob-frames.cc:32
#4 0x41eee0 in main stack-oob-frames.cc:38
#5 0x7f0c5566f76c (/lib/x86_64-linux-gnu/libc.so.6+0x2176c)
#6 0x41eb1c (/usr/local/google/kcc/llvm_cmake/a.out+0x41eb1c)
Address 0x7fffa77cf1c5 is located in stack of thread T0 at offset 293 in frame
#0 0x41f87f in Frame0(int, char*, char*, char*) stack-oob-frames.cc:12 <<<<<<<<<<<<<< this is new
This frame has 6 object(s):
[32, 36) 'frame.addr'
[96, 104) 'a.addr'
[160, 168) 'b.addr'
[224, 232) 'c.addr'
[288, 292) 's'
[352, 360) 'd'
llvm-svn: 177723
|
|
|
|
|
|
| |
-fsanitize=address
llvm-svn: 177064
|
|
|
|
|
|
| |
Instead, it should be turned on by default in the compiler
llvm-svn: 177058
|
|
|
|
|
|
|
|
|
| |
of accessibility checks in memcmp.
1: memcmp(p1, p2, n) always checks n bytes
0: memcmp checks up to n bytes depending on whether the memory contents differ.
llvm-svn: 176256
|
|
|
|
|
|
| |
addresses higher than 0x3fffffffff
llvm-svn: 176250
|
|
|
|
|
|
| |
no_sanitize_address)
llvm-svn: 176077
|
|
|
|
|
|
|
|
|
| |
Because the interceptors will reside in a dylib, not the main executable, we can't just declare them,
but must use the interposition machinery.
Fix the test expectations in large_func_test.cc affected by the change.
This CL should make our Mac buildbots green.
llvm-svn: 175763
|
|
|
|
|
|
| |
ld-preload-ed runtime
llvm-svn: 175625
|
|
|
|
| |
llvm-svn: 175623
|
|
|
|
| |
llvm-svn: 175618
|
|
|
|
| |
llvm-svn: 175615
|
|
|
|
| |
llvm-svn: 175614
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch makes asan instrument memory accesses with unusual sizes (e.g. 5 bytes or 10 bytes), e.g. long double or
packed structures.
Instrumentation is done with two 1-byte checks
(first and last bytes) and if the error is found
__asan_report_load_n(addr, real_size) or
__asan_report_store_n(addr, real_size)
is called.
asan-rt part
Also fix lint.
llvm-svn: 175508
|
|
|
|
|
|
| |
bfd linker have different flag syntax)
llvm-svn: 175431
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MaybeReexec() does now a tricky job to manage DYLD_INSERT_LIBRARIES in a safe way.
Because we're using library interposition, it's critical for an instrumented app
to be executed with the runtime library present in DYLD_INSERT_LIBRARIES list.
Therefore if it's initially missing in that list, we append the runtime library name
to the value of DYLD_INSERT_LIBRARIES and then exec() ourselves.
On the other hand, some of the apps exec()ed by our program may not want to have
ASan runtime library preloaded, so we remove the runtime library from the
DYLD_INSERT_LIBRARIES if it's already there.
Users may want to preload other libraries using DYLD_INSERT_LIBRARIES, so we preserve those.
llvm-svn: 175276
|