- Nov 13, 2013
-
-
Alexey Samsonov authored
Invoke a fatal stack trace unwinder when ASan prints allocator-relevant error reports (double-free, alloc-dealloc-mismatch, invalid-free). Thus we'll be able to print complete stack trace even if allocation/free stacks are not stored (malloc_context_size=0). Based on the patch by Yuri Gribov! llvm-svn: 194579
-
- Nov 01, 2013
-
-
Alexey Samsonov authored
This change unifies the summary printing across sanitizers: now each tool uses specific version of ReportErrorSummary() method, which deals with symbolization of the top frame and formatting a summary message. This change modifies the summary line for ASan+LSan mode: now the summary mentions "AddressSanitizer" instead of "LeakSanitizer". llvm-svn: 193864
-
- Oct 28, 2013
-
-
Alexey Samsonov authored
llvm-svn: 193522
-
- Oct 27, 2013
-
-
Timur Iskhodzhanov authored
llvm-svn: 193501
-
- Oct 26, 2013
-
-
Peter Collingbourne authored
This moves away from creating the symbolizer object and initializing the external symbolizer as separate steps. Those steps now always take place together. Sanitizers with a legacy requirement to specify their own symbolizer path should use InitSymbolizer to initialize the symbolizer with the desired path, and GetSymbolizer to access the symbolizer. Sanitizers with no such requirement (e.g. UBSan) can use GetOrInitSymbolizer with no need for initialization. The symbolizer interface has been made thread-safe (as far as I can tell) by protecting its member functions with mutexes. Finally, the symbolizer interface no longer relies on weak externals, the introduction of which was probably a mistake on my part. Differential Revision: http://llvm-reviews.chandlerc.com/D1985 llvm-svn: 193448
-
- Oct 23, 2013
-
-
Nick Lewycky authored
llvm-svn: 193229
-
- Oct 18, 2013
-
-
Kostya Serebryany authored
llvm-svn: 192979
-
- Oct 14, 2013
-
-
Alexey Samsonov authored
Summary: Out-of-bound access may touch not-yet allocated or already freed and recycled from quarantine chunks. We should treat this situation as a "free-range memory access" and avoid printing any data about that irrelevant chunk (which may be inconsistent). This should fix https://code.google.com/p/address-sanitizer/issues/detail?id=183 Reviewers: kcc Reviewed By: kcc CC: timurrrr, llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1893 llvm-svn: 192581
-
- Oct 04, 2013
-
-
Alexey Samsonov authored
llvm-svn: 191943
-
- Sep 16, 2013
-
-
Alexey Samsonov authored
llvm-svn: 190787
-
- Sep 12, 2013
-
-
Kostya Serebryany authored
[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
-
- Sep 10, 2013
-
-
Alexey Samsonov authored
[Sanitizer] Refactor symbolization interface: use class instead of several functions. Move some code around to get rid of extra source files llvm-svn: 190410
-
Timur Iskhodzhanov authored
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
-
- Sep 03, 2013
-
-
Timur Iskhodzhanov authored
llvm-svn: 189817
-
Kostya Serebryany authored
llvm-svn: 189814
-
Kostya Serebryany authored
llvm-svn: 189806
-
Sergey Matveev authored
llvm-svn: 189804
-
Kostya Serebryany authored
llvm-svn: 189783
-
- Aug 16, 2013
-
-
Timur Iskhodzhanov authored
llvm-svn: 188545
-
- Aug 13, 2013
-
-
Timur Iskhodzhanov authored
Define SANITIZER_INTERFACE_ATTRIBUTE on Windows and fix all the places where SANITIZER_INTERFACE_ATTRIBUTE or SANITIZER_ATTRIBUTE_WEAK are used llvm-svn: 188261
-
- Jun 26, 2013
-
-
Kostya Serebryany authored
[asan] initialize fake_stack lazily and increase its maximal size. This makes -fsanitize=address,use-after-return more robust: all SPEC tests pass now. In the default mode thread stacks become a bit smaller. llvm-svn: 184934
-
- May 29, 2013
-
-
Timur Iskhodzhanov authored
llvm-svn: 182857
-
- May 22, 2013
-
-
Kostya Serebryany authored
llvm-svn: 182477
-
- May 06, 2013
-
-
Sergey Matveev authored
Some flags that are common to ASan/MSan/TSan/LSan have been moved to sanitizer_common. llvm-svn: 181193
-
- Apr 11, 2013
-
-
Alexey Samsonov authored
llvm-svn: 179274
-
- Apr 10, 2013
-
-
Alexey Samsonov authored
llvm-svn: 179161
-
- Apr 05, 2013
-
-
Kostya Serebryany authored
[sanitizer] found a bug by code inspection: CHECK(a=b) instead of CHECK(a==b). Was puzzled why lint did not catch it. Turns out this check was disabled for asan source. fix all cases and enable the check llvm-svn: 178872
-
Alexey Samsonov authored
[Sanitizer] Use a common mutex to prevent mixing reports from different sanitizers. This fixes PR15516 llvm-svn: 178853
-
- Apr 01, 2013
-
-
Alexey Samsonov authored
llvm-svn: 178458
-
- Mar 27, 2013
-
-
Alexey Samsonov authored
llvm-svn: 178131
-
- Mar 26, 2013
-
-
Kostya Serebryany authored
[asan] print thread number while reporting invalid-free and double-free; add tests; also add a test for use-after-poison llvm-svn: 177993
-
- Mar 22, 2013
-
-
Kostya Serebryany authored
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
-
- Mar 21, 2013
-
-
Alexey Samsonov authored
[ASan] Switch ASan to generic ThreadRegistry from sanitizer_common. Delete ASan-specific AsanThreadRegistry. llvm-svn: 177634
-
- Mar 20, 2013
-
-
Alexey Samsonov authored
[ASan] Move GetCurrentThread/SetCurrentThread from AsanThreadRegistry class into plain functions: they don't actually use registry llvm-svn: 177501
-
- Mar 18, 2013
-
-
Kostya Serebryany authored
[asan] while generating the description of a global variable, emit the module name in a separate field, thus not duplicating this information if every description. This decreases the binary size (observed up to 3%). https://code.google.com/p/address-sanitizer/issues/detail?id=168 . This changes the asan API version. compiler-rt part, llvm-part will follow llvm-svn: 177253
-
- Feb 20, 2013
-
-
Alexey Samsonov authored
llvm-svn: 175622
-
- Feb 06, 2013
-
-
Kostya Serebryany authored
[asan] print a short one-line report summary after the full report. Currently, works only if symbolization happens in-process. llvm-svn: 174501
-
- Feb 05, 2013
-
-
Evgeniy Stepanov authored
In case of partial right OOB, ASan was reporting X is located 0 bytes to the right of [A, B) where X was actually inside [A, B). With this change, ASan will report B as the error address in such case. llvm-svn: 174373
-
- Jan 28, 2013
-
-
Kostya Serebryany authored
llvm-svn: 173671
-
- Jan 23, 2013
-
-
Kostya Serebryany authored
llvm-svn: 173251
-