Alexey Samsonov
a5b3130e86
AddressSanitizer: get rid of limits.h, use constants for fixed size integral types instead.
...
llvm-svn: 151159
2012-02-22 12:54:04 +00:00
Evgeniy Stepanov
abaf196be3
[asan] Remove mentions of pthread*_t from interceptors.
...
Some platforms do not define pthread_t in stdlib.h.
llvm-svn: 151158
2012-02-22 12:31:25 +00:00
Alexey Samsonov
2df8afa075
AddressSanitizer: fix Makefile.old - gtest should depend on libasan
...
llvm-svn: 151157
2012-02-22 11:59:44 +00:00
Timur Iskhodzhanov
94602b48ee
[ASan] Fix style + suppress 'long' lint warnings
...
llvm-svn: 151149
2012-02-22 09:28:14 +00:00
Evgeniy Stepanov
d179ec614e
Update source code links in LICENSE.TXT.
...
mach_override has been moved to a different path.
sysinfo is gone.
llvm-svn: 151148
2012-02-22 09:21:02 +00:00
Alexander Potapenko
2c0ed61c7a
Move the contents of AsanProcMaps::Dump() into AsanDumpProcessMaps() for Posix systems.
...
Define AsanDumpProcessMaps as unimplemented on Windows.
This should fix the Windows build.
llvm-svn: 151147
2012-02-22 09:11:55 +00:00
Timur Iskhodzhanov
3a32ed913b
[ASan] Fix a wrong filename mentioned in a comment
...
llvm-svn: 151145
2012-02-22 08:56:25 +00:00
Alexander Potapenko
c259ab3cac
Dump the process memory map if any of the mappings interleaves with the shadow.
...
llvm-svn: 151141
2012-02-22 08:27:32 +00:00
Alexander Potapenko
fce2ca9f66
Add AsanProcMaps::Dump()
...
llvm-svn: 151139
2012-02-22 08:13:47 +00:00
Timur Iskhodzhanov
a1c987ff38
[ASan] Add __asan_init to the list of C dynamic initializers to support /MD on Windows
...
llvm-svn: 151059
2012-02-21 16:24:23 +00:00
Alexander Potapenko
47038cae29
Fix the lib32 and lib64 targets.
...
llvm-svn: 151057
2012-02-21 14:11:52 +00:00
Timur Iskhodzhanov
f2061453bd
[ASan] Remove one FIXME - re-enable "free-not-malloced" reports on Windows
...
llvm-svn: 151051
2012-02-21 09:58:39 +00:00
Alexander Potapenko
0be25d562c
Check that the FakeStack size is non-zero before looking into it.
...
Sometimes DescribeStackAddress is called before another thread's FakeStack is initialized, which could previously cause a check to fire.
llvm-svn: 151046
2012-02-21 08:45:41 +00:00
Alexey Samsonov
789456bf68
AddressSanitizer: Don't include GrandCentralDispatch headers in asan headers on Mac
...
llvm-svn: 151044
2012-02-21 08:30:57 +00:00
Alexey Samsonov
2d2f1711b7
AddressSanitizer: don't use /tmp for temporary file in output tests.
...
llvm-svn: 151042
2012-02-21 07:08:38 +00:00
Alexey Samsonov
0d0b406aba
AddressSanitizer: use custom strtol/atoll functions
...
llvm-svn: 150812
2012-02-17 16:15:09 +00:00
Alexey Samsonov
8e7bfceb98
AddressSanitizer: fix lint
...
llvm-svn: 150802
2012-02-17 08:31:10 +00:00
Alexey Samsonov
fbb50f19ad
AddressSanitizer: revert r150683 - we can't get rid of headers that easily
...
llvm-svn: 150699
2012-02-16 17:00:45 +00:00
Evgeniy Stepanov
5d47e9164c
[asan] Allocator tweaks for low memory systems.
...
llvm-svn: 150689
2012-02-16 13:35:11 +00:00
Alexey Samsonov
ca37969c24
AddressSanitizer: don't include pthread.h and signal.h in interceptors on Mac
...
llvm-svn: 150683
2012-02-16 11:26:52 +00:00
Kostya Serebryany
10dbd68bd2
[asan] don't do AsanDie twice
...
llvm-svn: 150641
2012-02-16 00:40:18 +00:00
Alexey Samsonov
1e7e2370aa
AddressSanitizer: don't include pthread.h in asan_interceptors.cc on Linux
...
llvm-svn: 150573
2012-02-15 09:14:26 +00:00
Alexey Samsonov
278c25f241
AddressSanitizer: simplify IntervalsAreSeparate function
...
llvm-svn: 150569
2012-02-15 08:27:34 +00:00
Timur Iskhodzhanov
d2a9075de0
[ASan] Define an internal implementation of strchr to make stack OOB tests pass on Windows
...
llvm-svn: 150499
2012-02-14 19:33:04 +00:00
Evgeniy Stepanov
2ee5950dd0
[asan] Add lots of missing visibility attributes.
...
llvm-svn: 150479
2012-02-14 13:46:06 +00:00
Kostya Serebryany
fcd535ba6c
[asan] implement __asan_set_death_callback
...
llvm-svn: 150414
2012-02-13 21:24:29 +00:00
Alexander Potapenko
438447a7f3
Fix compilation on Mac.
...
llvm-svn: 150400
2012-02-13 17:14:31 +00:00
Alexander Potapenko
234d8c2168
Lint fix
...
llvm-svn: 150399
2012-02-13 17:11:19 +00:00
Alexander Potapenko
720aaefb8d
Move the non-trivial implementation of AsanShadowRangeIsAvailable to asan_mac.cc
...
to avoid crashes on Linux and Win.
llvm-svn: 150398
2012-02-13 17:09:40 +00:00
Alexander Potapenko
ef4521e239
Check whether the shadow memory range intersects with an existing mapping.
...
This should help to detect problems with ASLR or linker tricks early.
llvm-svn: 150391
2012-02-13 15:11:23 +00:00
Alexey Samsonov
ea308d876b
AddressSanitizer: re-enable lint for output tests
...
llvm-svn: 150386
2012-02-13 14:18:36 +00:00
Alexey Samsonov
54671b63be
AddressSanitizer: fix llvm headers in output tests
...
llvm-svn: 150385
2012-02-13 14:05:07 +00:00
Alexey Samsonov
633c8be0ae
AddressSanitizer: remove match_output.py, split expected output into OS-specific and OS-independent parts
...
llvm-svn: 150384
2012-02-13 13:59:24 +00:00
Evgeniy Stepanov
c5d845dc09
[asan] Add a missing include.
...
llvm-svn: 150382
2012-02-13 12:37:56 +00:00
Evgeniy Stepanov
450c123218
[asan] Add a missing return.
...
It is technically reachable on Android, where pthread_exit is not
marked noreturn.
llvm-svn: 150381
2012-02-13 12:36:44 +00:00
Alexey Samsonov
92a0b806a6
AddressSanitizer: Convert templates for output tests to FileCheck format and move them inside sources
...
llvm-svn: 150375
2012-02-13 12:21:58 +00:00
Evgeniy Stepanov
b25d0d2318
[asan] Return type of index() is char*.
...
This is important for Android, where we can't keep system headers
from leaking into asan_interceptors.cc.
llvm-svn: 150374
2012-02-13 12:12:32 +00:00
Evgeniy Stepanov
da7522b551
[asan] Disable signal&sigaction interceptors on Android.
...
llvm-svn: 150373
2012-02-13 12:04:36 +00:00
Evgeniy Stepanov
45fd36110b
[asan] Default visibility for __asan_handle_no_return.
...
llvm-svn: 150372
2012-02-13 11:55:24 +00:00
Evgeniy Stepanov
56ae29f92d
[asan] Fix a crash in GetCurrent() of an undead thread.
...
llvm-svn: 150371
2012-02-13 11:53:24 +00:00
Alexey Samsonov
6e6083f4b1
AddressSanitizer: fix path to FileCheck in makefiles
...
llvm-svn: 150368
2012-02-13 09:14:31 +00:00
Alexey Samsonov
b30df37ebf
AddressSanitizer: move output tests to a separate directory
...
llvm-svn: 150367
2012-02-13 08:50:21 +00:00
Alexey Samsonov
f9affd3a0c
AddressSanitizer: Use FileCheck instead of grep for pure C output tests
...
llvm-svn: 150366
2012-02-13 08:27:10 +00:00
Bob Wilson
e67004e2f1
Back out some changes that accidentally committed.
...
llvm-svn: 150254
2012-02-10 16:41:46 +00:00
Bob Wilson
ddd971564e
Revert r150232 since it breaks the build when there's no ARM assembler.
...
llvm-svn: 150253
2012-02-10 16:36:49 +00:00
Daniel Dunbar
d205200d41
make/clang_darwin: Tweak CheckArches function to force the integrated-as and use
...
the stub SDK to try and ensure we always pick up the right archs when they
should be able to be used.
- Also, warn when we drop an architecture.
llvm-svn: 150232
2012-02-10 06:00:35 +00:00
Timur Iskhodzhanov
7ce3e5bb8e
[asan] The first version of the RTL for Windows, reviewed at http://codereview.appspot.com/5647052
...
llvm-svn: 150185
2012-02-09 17:20:14 +00:00
Timur Iskhodzhanov
bc9bb3f581
Test commit + fix an obvious typo
...
llvm-svn: 150184
2012-02-09 16:29:41 +00:00
Alexey Samsonov
9654367cbc
AddressSanitizer: move mach_override inside interception library
...
llvm-svn: 150171
2012-02-09 11:36:12 +00:00
Kostya Serebryany
0394da7bea
[asan] unpoison the stack before every noreturn call. Fixes asan issue 37. rt part
...
llvm-svn: 150101
2012-02-08 21:33:27 +00:00
Alexey Samsonov
8489f2a564
AddressSanitizer: start factoring out interception machinery
...
llvm-svn: 150083
2012-02-08 19:52:01 +00:00
Alexander Potapenko
1da11ec357
Move the _ReturnAddress definition out of the __asan:: namespace
...
Patch by Timur Iskhodzhanov (timurrrr@google.com )
llvm-svn: 150075
2012-02-08 14:14:18 +00:00
Alexey Samsonov
e725478e2f
AddressSanitizer: replace all "real_X" calls with "REAL(X)"
...
llvm-svn: 150073
2012-02-08 13:45:31 +00:00
Alexander Potapenko
42cdb7e640
Typo fix: s/SNPrint/SNPrintf
...
llvm-svn: 150069
2012-02-08 11:45:09 +00:00
Kostya Serebryany
9716914b2d
[asan] better warning messages for double-free bugs (provide allocation/deallocation stack traces)
...
llvm-svn: 150027
2012-02-08 00:42:29 +00:00
Kostya Serebryany
f98fc08bc7
[asan] GET_CALLER_PC macro for Win. Patch by timurrrr@google.com
...
llvm-svn: 149994
2012-02-07 18:23:54 +00:00
Kostya Serebryany
d61255638f
[asan] print 'ALL TESTS PASSED' in makefile when running tests (convenience)
...
llvm-svn: 149990
2012-02-07 17:36:07 +00:00
Kostya Serebryany
614b53de1b
[asan] don't crash if /proc/self/maps has enormous size (linux)
...
llvm-svn: 149944
2012-02-07 00:47:35 +00:00
Kostya Serebryany
b5eb5a7a05
[asan] make sure the AsanThread object is destroyed if pthread_exit is called
...
llvm-svn: 149940
2012-02-07 00:27:15 +00:00
Kostya Serebryany
546ba363ea
[asan] use raw syscalls for open/close on linux to avoid being intercepted
...
llvm-svn: 149892
2012-02-06 19:23:38 +00:00
Kostya Serebryany
9ff28d661d
[asan] The first version of Windows malloc interceptors, patch by timurrrr@google.com
...
llvm-svn: 149875
2012-02-06 17:56:38 +00:00
Nick Kledzik
686f0d17a6
On Apple platforms, wire up compilerrt_abort() to log file and function info
...
llvm-svn: 149723
2012-02-03 23:53:40 +00:00
Nick Kledzik
a2b846c000
Remove __attribute__((weak)) on function prototype. It has a different meaning on prototypes then it does on definitions. It is not needed on the prototype and causes build failures for static codegen
...
llvm-svn: 149720
2012-02-03 23:10:55 +00:00
Alexey Samsonov
f9fef3d275
AddressSanitizer: simplify RoundUpToPowerOfTwo/clz; add a couple of CHECKs for real_X calls. Patch by timurrrr@google.com
...
llvm-svn: 149687
2012-02-03 08:50:16 +00:00
Alexey Samsonov
23e3b90319
AddressSanitizer: Replace __attribute__ with macro (for Win compatibility). Patch by timurrrr@google.com
...
llvm-svn: 149686
2012-02-03 08:37:19 +00:00
Alexey Samsonov
15965f9c3d
AddressSanitizer: Add macro for definition/declaration of interceptors
...
llvm-svn: 149602
2012-02-02 10:39:40 +00:00
Alexander Potapenko
c97434ecaf
Disable wrapping memcpy() on Mac OS Lion, where it
...
actually falls back to memmove.
In this case we still need to initialize real_memcpy, so we set it to
real_memmove
We check for MACOS_VERSION_SNOW_LEOPARD, because currently only Snow
Leopard and Lion are supported.
llvm-svn: 149492
2012-02-01 10:07:52 +00:00
Alexander Potapenko
f504602a0f
Disables testing memcpy() on Mac OS 10.7,
...
where memcpy() in fact aliases memmove() and thus calling it with
overlapping parameters is not an error.
llvm-svn: 149491
2012-02-01 09:47:40 +00:00
Kostya Serebryany
9160b5059b
[asan] fix the wrong __WORDSIZE definition on Win x64, add ASAN_INTERFACE_FUNCTION_ATTRIBUTE. Patch by timurrrr@google.com
...
llvm-svn: 149395
2012-01-31 18:13:50 +00:00
Kostya Serebryany
7e7d0ca1a2
[asan] remove dead code
...
llvm-svn: 149392
2012-01-31 17:29:02 +00:00
Alexander Potapenko
81203bdb33
Implement GetMacosVersion() to obtain the OS X version at runtime.
...
llvm-svn: 149382
2012-01-31 13:19:18 +00:00
Kostya Serebryany
ad1fccdb1c
[asan] tests should not require the asan-rt to be built with debug info
...
llvm-svn: 149330
2012-01-31 01:56:58 +00:00
Kostya Serebryany
bca91defcb
[asan] new run-time flag: sleep_before_dying (asan Issue #31 )
...
llvm-svn: 149306
2012-01-31 00:52:18 +00:00
Kostya Serebryany
9aca3b0d2f
[asan] re-enable the test for ObjC initialization bug
...
llvm-svn: 149302
2012-01-30 23:55:46 +00:00
Kostya Serebryany
39ba3f724f
[asan] fix issue 35: don't let the optimizer to optimize the test code away.
...
llvm-svn: 149296
2012-01-30 23:23:26 +00:00
Kostya Serebryany
fed83c5755
[asan] ifdef/include cleanup
...
llvm-svn: 149281
2012-01-30 22:11:04 +00:00
Kostya Serebryany
cf2c65aa8e
[asan] add a test for __attribute__ no_address_safety_analysis
...
llvm-svn: 149278
2012-01-30 21:34:59 +00:00
Kostya Serebryany
510850c345
[asan] minor ifdef cleanup
...
llvm-svn: 149274
2012-01-30 20:55:02 +00:00
Alexey Samsonov
2dcef2d2a8
AddressSanitizer: Enforce default visibility for all libc interceptors
...
llvm-svn: 149247
2012-01-30 13:42:44 +00:00
Alexander Potapenko
81ebb0aafb
Add a mask for "cmpb $imm, (%rdi)" on x86_64
...
llvm-svn: 149245
2012-01-30 12:49:00 +00:00
Anton Korobeynikov
28037ceacf
Proper divmod implementation
...
llvm-svn: 149242
2012-01-30 10:21:51 +00:00
Anton Korobeynikov
b047b04c4c
Provide aeabi_mem* functions.
...
llvm-svn: 149241
2012-01-30 10:21:23 +00:00
Alexander Potapenko
f519564d7c
Make compiler-rt/trunk/lib/asan compileable with Visual Studio 2008 on Windows.
...
Patch by Timur Iskhodzhanov (timurrrr@google.com )
To test:
$ cl /c *.c*
in the asan directory.
The code fails to link if you omit the "/c" part but that's one of the
next steps,
as well as a few TODO's I've put into the Windows-specific code.
llvm-svn: 149130
2012-01-27 15:15:04 +00:00
Alexander Potapenko
13d95d5e5a
Make compiler-rt/trunk/lib/asan compileable with g++.
...
Patch by Timur Iskhodzhanov (timurrrr@google.com )
The double-extern thing is
http://llvm.org/bugs/show_bug.cgi?id=11869
And the #include <string[s].h> are only needed on Mac (see comments in
the original code)
and also including them might make strchr/index conflict with the g++
system headers (which don't follow the man pages, ouch!)
llvm-svn: 149129
2012-01-27 10:52:37 +00:00
Alexander Potapenko
fabfcd8bea
Darwin-specific templates for the output tests.
...
These should fix the output tests on Mac.
llvm-svn: 149068
2012-01-26 17:40:18 +00:00
Alexander Potapenko
02a71626e3
More accurate atos execution which depends on the file type (EXECUTE, DYLIB) of the binary.
...
More Linux-like output on Mac (to match more output tests).
llvm-svn: 149064
2012-01-26 17:06:50 +00:00
Alexander Potapenko
98f0c713d9
Fix a bug in AsanProcMaps on Mac: on 64 bits the program was trying to read twice as many segment load commands as the binary actually contained.
...
llvm-svn: 149063
2012-01-26 17:01:20 +00:00
Alexander Potapenko
1f397fb87f
Tune asan_symbolize.py to symbolize 64-bit binaries correctly.
...
Add the DEBUG flag to test_output.sh
llvm-svn: 148798
2012-01-24 10:44:44 +00:00
Kostya Serebryany
586ade114b
[asan] use internal_strcmp before asan_init is done. *may* fix asan issue #30
...
llvm-svn: 148726
2012-01-23 21:20:05 +00:00
Kostya Serebryany
f9418f9679
[asan] test that -fno-optimize-sibling-calls helps to get sane stack traces
...
llvm-svn: 148714
2012-01-23 18:44:34 +00:00
Alexander Potapenko
046ecc06be
Wrap CFStringCreateCopy to prevent copying constant CF strings.
...
This should fix http://code.google.com/p/address-sanitizer/issues/detail?id=10
llvm-svn: 148696
2012-01-23 10:09:54 +00:00
Alexander Potapenko
f9392011c8
Add a test for CFStringCreateCopy.
...
Normally this function should not create copies of constant strings, but it does when the default CFAllocator
is replaced (e.g. under AddressSanitizer)
This test is related to http://code.google.com/p/address-sanitizer/issues/detail?id=10
llvm-svn: 148695
2012-01-23 10:06:14 +00:00
Evgeniy Stepanov
3f6840745c
Make the Android TSD workaround more reliable.
...
By scanning the thread list backwards.
llvm-svn: 148476
2012-01-19 13:57:45 +00:00
Evgeniy Stepanov
d296ad4e16
Workaround the self-cleaning TSD on Android.
...
llvm-svn: 148475
2012-01-19 13:37:31 +00:00
Alexander Potapenko
62b0d70e56
Remove a debugging Report() call.
...
llvm-svn: 148474
2012-01-19 13:34:15 +00:00
Alexander Potapenko
3825e9770b
Minor fixes of the AsanProcMaps code on Mac:
...
-- make the load command scan linear (instead of quadratic)
-- do not create a nested AsanProcMaps instance for each address lookup
-- more comments
llvm-svn: 148472
2012-01-19 12:44:06 +00:00
Evgeniy Stepanov
84c44a8b8b
EHABI-based stack trace on ARM.
...
The change removes the unused FLAG_fast_unwind, and forces EHABI-based unwind
on ARM, and fast (FP-based) unwind everywhere else.
llvm-svn: 148468
2012-01-19 11:34:18 +00:00
Alexey Samsonov
0ac73fc9f8
AddressSanitizer: return false instead of true for __asan_get_ownership(NULL)
...
llvm-svn: 148394
2012-01-18 15:26:55 +00:00
Alexander Potapenko
38da9a04f5
Delete sysinfo/* and all references to it.
...
llvm-svn: 148386
2012-01-18 11:42:30 +00:00
Alexander Potapenko
4257386879
Implement AsanProcMaps for Mac OS. The code from sysinfo/ is not needed anymore and should be cleaned up.
...
llvm-svn: 148385
2012-01-18 11:16:05 +00:00