diff options
author | Kostya Serebryany <kcc@google.com> | 2012-02-06 19:23:38 +0000 |
---|---|---|
committer | Kostya Serebryany <kcc@google.com> | 2012-02-06 19:23:38 +0000 |
commit | 546ba363eaa8407154540cc87c2fb0e849e56788 (patch) | |
tree | e0cf38e8f932c25e0d1e55032b78c16c00e863dd | |
parent | 2eb6c3d246cf0a68e4f16c520edf01fc1620a387 (diff) | |
download | bcm5719-llvm-546ba363eaa8407154540cc87c2fb0e849e56788.tar.gz bcm5719-llvm-546ba363eaa8407154540cc87c2fb0e849e56788.zip |
[asan] use raw syscalls for open/close on linux to avoid being intercepted
llvm-svn: 149892
-rw-r--r-- | compiler-rt/lib/asan/asan_linux.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler-rt/lib/asan/asan_linux.cc b/compiler-rt/lib/asan/asan_linux.cc index 6a9b12287a5..cf1e6abc879 100644 --- a/compiler-rt/lib/asan/asan_linux.cc +++ b/compiler-rt/lib/asan/asan_linux.cc @@ -118,7 +118,7 @@ size_t AsanWrite(int fd, const void *buf, size_t count) { } int AsanOpenReadonly(const char* filename) { - return open(filename, O_RDONLY); + return syscall(__NR_open, filename, O_RDONLY); } // Like getenv, but reads env directly from /proc and does not use libc. @@ -154,7 +154,7 @@ size_t AsanRead(int fd, void *buf, size_t count) { } int AsanClose(int fd) { - return close(fd); + return syscall(__NR_close, fd); } AsanProcMaps::AsanProcMaps() { |