Alexey Samsonov
1479418407
[ASan] get rid of setjmp.h header in interceptors
...
llvm-svn: 153085
2012-03-20 11:40:09 +00:00
Alexey Samsonov
c298b3674f
[ASan]: remove GetMacosVersion from asan_mac.h header
...
llvm-svn: 153084
2012-03-20 10:54:40 +00:00
Alexey Samsonov
cae79fbab9
[ASan]: re-enable noreturn attribute on posix
...
llvm-svn: 153082
2012-03-20 10:14:55 +00:00
Kostya Serebryany
74a908bb85
[asan] disable GetOwnershipStressTest on non-linux
...
llvm-svn: 152953
2012-03-16 22:15:22 +00:00
Kostya Serebryany
af32a84b24
[asan] added an assert in InitializeAsanInterceptors (it should be run just once)
...
llvm-svn: 152945
2012-03-16 21:02:13 +00:00
Alexander Potapenko
fa391a7df2
[ASan] Print the parsed ASAN_OPTIONS for verbosity>0.
...
Move the flags around slightly.
llvm-svn: 152929
2012-03-16 16:38:31 +00:00
Kostya Serebryany
e059c124a8
[asan] one more -Wnull-conversion fix
...
llvm-svn: 152773
2012-03-15 04:26:00 +00:00
Kostya Serebryany
54a3cac5c5
[asan] fix unwinding inside libc intercepors (asan issue #46 )
...
llvm-svn: 152768
2012-03-15 01:36:00 +00:00
Kostya Serebryany
fd2037162e
[asan] performance optimization: make sure the check for poisoned shadow inside inteceptors is inlined
...
llvm-svn: 152767
2012-03-15 01:18:06 +00:00
Kostya Serebryany
baf68ffcf8
[asan] fix -Wnull-conversion warnings
...
llvm-svn: 152747
2012-03-14 22:48:09 +00:00
Timur Iskhodzhanov
d8d9fd66c6
[ASan] Undo NORETURN on POSIX as it's not clear how to do this cleanly yet
...
llvm-svn: 152631
2012-03-13 16:48:46 +00:00
Timur Iskhodzhanov
f0b7595e08
[ASan] Fix build error on Linux; screen-reviewed by glider@google.com
...
llvm-svn: 152629
2012-03-13 16:29:25 +00:00
Timur Iskhodzhanov
70df757918
[ASan/Win] Eliminate a couple of FIXMEs, add NORETURN to CheckFailed/UNIMPLEMENTED
...
llvm-svn: 152628
2012-03-13 16:12:03 +00:00
Timur Iskhodzhanov
cf526ff278
[ASan/Win] Fix wrong memmove,memcpy,memset interceptor definitons
...
llvm-svn: 152622
2012-03-13 10:42:34 +00:00
Alexey Samsonov
8b5f7c5aa2
AddressSanitizer: fix a couple of typos
...
llvm-svn: 152617
2012-03-13 06:46:32 +00:00
Kostya Serebryany
b0712f8e68
[asan] output test for memcmp
...
llvm-svn: 152594
2012-03-13 01:04:06 +00:00
Timur Iskhodzhanov
2f48b870f3
[ASan] Add back the support for /MT; intercept statically-linked functions
...
llvm-svn: 152557
2012-03-12 11:45:09 +00:00
Timur Iskhodzhanov
fead7f5aa5
[ASan] Use WriteFile instead of fwrite in AsanWrite
...
llvm-svn: 152540
2012-03-11 12:45:12 +00:00
Kostya Serebryany
b0f9354168
[asan] use O(log(N)) algorithm instead of O(N) in __asan_get_ownership
...
llvm-svn: 152467
2012-03-10 01:30:01 +00:00
Kostya Serebryany
8aff411add
[asan] add a (disabled) stress test for __asan_get_ownership
...
llvm-svn: 152362
2012-03-09 01:48:18 +00:00
Kostya Serebryany
f7fc1d4859
[asan]: fix off-by-one error in stack unwinder (asan issue #44 ; reproduced thanks to 'csmith' fuzzer)
...
llvm-svn: 152347
2012-03-08 22:25:08 +00:00
Kostya Serebryany
c7835f301e
[asan] don't use dl_iterate_phdr on linux, go back to using /proc/self/maps. Hopefully fixes the problem reported by our mozilla friends.
...
llvm-svn: 152341
2012-03-08 21:19:07 +00:00
Timur Iskhodzhanov
bc08fed082
[ASan] Fix lint warning
...
llvm-svn: 152226
2012-03-07 11:33:15 +00:00
Timur Iskhodzhanov
d8dd07f2ff
[ASan/Win] Intercept _msize, required for running SQLite
...
llvm-svn: 152224
2012-03-07 11:19:26 +00:00
Alexander Potapenko
b780ad9117
Force __asan_handle_no_return into the binary built with ASan.
...
llvm-svn: 152117
2012-03-06 11:45:59 +00:00
Eli Friedman
e781266905
Make sure to properly ifdef out an unused function on OSX < 10.6. PR12136. Patch from Jeremy Huddleston.
...
llvm-svn: 152085
2012-03-06 01:21:14 +00:00
Daniel Dunbar
030e0a866c
platform/clang_darwin: Fix a comment.
...
llvm-svn: 152058
2012-03-05 20:46:09 +00:00
Daniel Dunbar
cdf9bf7048
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.
This is a reapplication of r150232 that should stick now that we have the
integrated assembler on for ARM.
llvm-svn: 152057
2012-03-05 20:46:06 +00:00
Evgeniy Stepanov
f485c3ccbd
[asan] Add a negative test for memcpy of long double.
...
llvm-svn: 151888
2012-03-02 10:42:10 +00:00
Alexander Potapenko
8e9d772c5a
Force __asan_set_death_callback into the resulting binary.
...
llvm-svn: 151808
2012-03-01 14:39:21 +00:00
Timur Iskhodzhanov
972720e564
[ASan] Replace CRT .dll malloc with our implementation at asan_init() time
...
llvm-svn: 151715
2012-02-29 11:43:03 +00:00
Alexander Potapenko
7e07f56811
Introduce __asan_set_error_report_callback() to allow the client program post-process the error reports.
...
If the callback is set, Report() and Printf() print the reports into a buffer (together with stderr), which is then passed to the client.
llvm-svn: 151528
2012-02-27 14:06:48 +00:00
Evgeniy Stepanov
d84e16e6a3
Replace some #ifdef(s) with plain if(s).
...
llvm-svn: 151526
2012-02-27 13:07:29 +00:00
Alexey Samsonov
a1a3a2ffc3
AddressSanitizer: add some checks to AsanChunkFifoList::PushList
...
llvm-svn: 151521
2012-02-27 09:06:10 +00:00
Kostya Serebryany
6ad2115575
[asan] don't compile gtest with asan when building asan tests
...
llvm-svn: 151391
2012-02-24 20:49:36 +00:00
Timur Iskhodzhanov
0f9c9a5332
[ASan] Intercept CreateThread on Windows
...
llvm-svn: 151366
2012-02-24 15:28:43 +00:00
Alexey Samsonov
53e191e77e
AddressSanitizer: quick fix - undef INT32_MIN etc to avoid macro redefinition
...
llvm-svn: 151165
2012-02-22 16:12:46 +00:00
Alexey Samsonov
d6651509d0
AddressSanitizer: get rid of stdlib.h and add (smaller) stddef.h instead
...
llvm-svn: 151162
2012-02-22 14:07:06 +00:00
Timur Iskhodzhanov
36d297d27f
[ASan] Intercept functions on Windows - first version
...
llvm-svn: 151161
2012-02-22 13:59:49 +00:00
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