projects
/
platform
/
upstream
/
llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
67d1a41
)
[asan/win] Use TerminateProcess when we want to exit abnormally
author
Reid Kleckner
<rnk@google.com>
Wed, 9 Nov 2016 21:27:58 +0000
(21:27 +0000)
committer
Reid Kleckner
<rnk@google.com>
Wed, 9 Nov 2016 21:27:58 +0000
(21:27 +0000)
ExitProcess still runs some code which can lead to ASan interceptors
running after CHECK failure. This can lead to deadlock if it CHECK fails
again. Avoid that mess by really exiting immediately.
llvm-svn: 286395
compiler-rt/lib/sanitizer_common/sanitizer_win.cc
patch
|
blob
|
history
diff --git
a/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
b/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
index e029953017d1b5360db969c98e05e10060ba0fae..54c15a5695b63005083c021b21abb9313ae9bcc8 100644
(file)
--- a/
compiler-rt/lib/sanitizer_common/sanitizer_win.cc
+++ b/
compiler-rt/lib/sanitizer_common/sanitizer_win.cc
@@
-656,7
+656,8
@@
uptr internal_sched_yield() {
}
void internal__exit(int exitcode) {
- ExitProcess(exitcode);
+ // ExitProcess runs some finalizers, so use TerminateProcess to avoid that.
+ TerminateProcess(GetCurrentProcess(), 3);
}
uptr internal_ftruncate(fd_t fd, uptr size) {