summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorViktor Kutuzov <vkutuzov@accesssoftek.com>2014-11-27 14:28:57 +0000
committerViktor Kutuzov <vkutuzov@accesssoftek.com>2014-11-27 14:28:57 +0000
commitd977985e43885e71c5c8d40ad2e216f722463936 (patch)
treeceed63307dd80bfdd1b2d62bac9ab6452017962c
parent671001cc6607a7c9a8890edf45c4479be9860c83 (diff)
downloadbcm5719-llvm-d977985e43885e71c5c8d40ad2e216f722463936.tar.gz
bcm5719-llvm-d977985e43885e71c5c8d40ad2e216f722463936.zip
[Msan] Fix some interceptors to pass initialization on FreeBSD
Differential Revision: http://reviews.llvm.org/D6417 llvm-svn: 222885
-rw-r--r--compiler-rt/lib/msan/msan_interceptors.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler-rt/lib/msan/msan_interceptors.cc b/compiler-rt/lib/msan/msan_interceptors.cc
index ad3af979093..877c0ed23f3 100644
--- a/compiler-rt/lib/msan/msan_interceptors.cc
+++ b/compiler-rt/lib/msan/msan_interceptors.cc
@@ -266,6 +266,8 @@ INTERCEPTOR(void, malloc_stats, void) {
#endif
INTERCEPTOR(SIZE_T, strlen, const char *s) {
+ if (msan_init_is_running)
+ return REAL(strlen)(s);
ENSURE_MSAN_INITED();
SIZE_T res = REAL(strlen)(s);
CHECK_UNPOISONED(s, res + 1);
@@ -636,6 +638,8 @@ INTERCEPTOR(char *, fcvt, double x, int a, int *b, int *c) {
}
INTERCEPTOR(char *, getenv, char *name) {
+ if (msan_init_is_running)
+ return REAL(getenv)(name);
ENSURE_MSAN_INITED();
char *res = REAL(getenv)(name);
if (res) __msan_unpoison(res, REAL(strlen)(res) + 1);
@@ -961,6 +965,8 @@ void __msan_allocated_memory(const void* data, uptr size) {
INTERCEPTOR(void *, mmap, void *addr, SIZE_T length, int prot, int flags,
int fd, OFF_T offset) {
+ if (msan_init_is_running)
+ return REAL(mmap)(addr, length, prot, flags, fd, offset);
ENSURE_MSAN_INITED();
if (addr && !MEM_IS_APP(addr)) {
if (flags & map_fixed) {
OpenPOWER on IntegriCloud