diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/asan/asan_interceptors.cc | 15 | ||||
-rw-r--r-- | lib/asan/asan_interceptors.h | 1 | ||||
-rw-r--r-- | lib/sanitizer_common/sanitizer_libc.cc | 12 | ||||
-rw-r--r-- | lib/sanitizer_common/sanitizer_libc.h | 1 | ||||
-rw-r--r-- | lib/tsan/rtl/tsan_defs.h | 1 | ||||
-rw-r--r-- | lib/tsan/rtl/tsan_interceptors.cc | 4 | ||||
-rw-r--r-- | lib/tsan/rtl/tsan_interface_ann.cc | 2 | ||||
-rw-r--r-- | lib/tsan/rtl/tsan_rtl_report.cc | 3 |
8 files changed, 21 insertions, 18 deletions
diff --git a/lib/asan/asan_interceptors.cc b/lib/asan/asan_interceptors.cc index ebfcc5b3c..a73263604 100644 --- a/lib/asan/asan_interceptors.cc +++ b/lib/asan/asan_interceptors.cc @@ -21,6 +21,9 @@ #include "asan_stats.h" #include "asan_thread_registry.h" #include "interception/interception.h" +#include "sanitizer_common/sanitizer_libc.h" + +using namespace __sanitizer; // NOLINT // Use macro to describe if specific function should be // intercepted on a given platform. @@ -297,18 +300,6 @@ char *internal_strncat(char *dst, const char *src, uptr n) { return dst; } -int internal_strcmp(const char *s1, const char *s2) { - while (true) { - unsigned c1 = *s1; - unsigned c2 = *s2; - if (c1 != c2) return (c1 < c2) ? -1 : 1; - if (c1 == 0) break; - s1++; - s2++; - } - return 0; -} - } // namespace __asan // ---------------------- Wrappers ---------------- {{{1 diff --git a/lib/asan/asan_interceptors.h b/lib/asan/asan_interceptors.h index 9f2d1110f..235013a01 100644 --- a/lib/asan/asan_interceptors.h +++ b/lib/asan/asan_interceptors.h @@ -40,7 +40,6 @@ void* internal_memset(void *s, int c, uptr n); int internal_memcmp(const void* s1, const void* s2, uptr n); char *internal_strstr(const char *haystack, const char *needle); char *internal_strncat(char *dst, const char *src, uptr n); -int internal_strcmp(const char *s1, const char *s2); // Works only for base=10 and doesn't set errno. s64 internal_simple_strtoll(const char *nptr, char **endptr, int base); diff --git a/lib/sanitizer_common/sanitizer_libc.cc b/lib/sanitizer_common/sanitizer_libc.cc index 6c07864fe..6e1c2818f 100644 --- a/lib/sanitizer_common/sanitizer_libc.cc +++ b/lib/sanitizer_common/sanitizer_libc.cc @@ -18,6 +18,18 @@ namespace __sanitizer { void MiniLibcStub() { } +int internal_strcmp(const char *s1, const char *s2) { + while (true) { + unsigned c1 = *s1; + unsigned c2 = *s2; + if (c1 != c2) return (c1 < c2) ? -1 : 1; + if (c1 == 0) break; + s1++; + s2++; + } + return 0; +} + char *internal_strncpy(char *dst, const char *src, uptr n) { uptr i; for (i = 0; i < n && src[i]; i++) diff --git a/lib/sanitizer_common/sanitizer_libc.h b/lib/sanitizer_common/sanitizer_libc.h index 9c61dd2c0..65e0305ee 100644 --- a/lib/sanitizer_common/sanitizer_libc.h +++ b/lib/sanitizer_common/sanitizer_libc.h @@ -26,6 +26,7 @@ namespace __sanitizer { void MiniLibcStub(); // internal_X() is a custom implementation of X() for use in RTL. +int internal_strcmp(const char *s1, const char *s2); char *internal_strncpy(char *dst, const char *src, uptr n); } // namespace __sanitizer diff --git a/lib/tsan/rtl/tsan_defs.h b/lib/tsan/rtl/tsan_defs.h index 74ed733af..608b58e34 100644 --- a/lib/tsan/rtl/tsan_defs.h +++ b/lib/tsan/rtl/tsan_defs.h @@ -162,7 +162,6 @@ T RoundUp(T p, int align) { void internal_memset(void *ptr, int c, uptr size); void internal_memcpy(void *dst, const void *src, uptr size); int internal_memcmp(const void *s1, const void *s2, uptr size); -int internal_strcmp(const char *s1, const char *s2); int internal_strncmp(const char *s1, const char *s2, uptr size); void internal_strcpy(char *s1, const char *s2); uptr internal_strlen(const char *s); diff --git a/lib/tsan/rtl/tsan_interceptors.cc b/lib/tsan/rtl/tsan_interceptors.cc index 69ae8ca2e..6c4f9b0b6 100644 --- a/lib/tsan/rtl/tsan_interceptors.cc +++ b/lib/tsan/rtl/tsan_interceptors.cc @@ -1532,10 +1532,6 @@ int internal_memcmp(const void *s1, const void *s2, uptr size) { return REAL(memcmp)(s1, s2, size); } -int internal_strcmp(const char *s1, const char *s2) { - return REAL(strcmp)(s1, s2); -} - int internal_strncmp(const char *s1, const char *s2, uptr size) { return REAL(strncmp)(s1, s2, size); } diff --git a/lib/tsan/rtl/tsan_interface_ann.cc b/lib/tsan/rtl/tsan_interface_ann.cc index a04a207b5..853770e2d 100644 --- a/lib/tsan/rtl/tsan_interface_ann.cc +++ b/lib/tsan/rtl/tsan_interface_ann.cc @@ -10,6 +10,7 @@ // This file is a part of ThreadSanitizer (TSan), a race detector. // //===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_libc.h" #include "tsan_interface_ann.h" #include "tsan_mutex.h" #include "tsan_placement_new.h" @@ -20,6 +21,7 @@ #define CALLERPC ((uptr)__builtin_return_address(0)) +using namespace __sanitizer; // NOLINT using namespace __tsan; // NOLINT namespace __tsan { diff --git a/lib/tsan/rtl/tsan_rtl_report.cc b/lib/tsan/rtl/tsan_rtl_report.cc index b3f8390bc..f8e07ff7e 100644 --- a/lib/tsan/rtl/tsan_rtl_report.cc +++ b/lib/tsan/rtl/tsan_rtl_report.cc @@ -11,6 +11,7 @@ // //===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_libc.h" #include "tsan_platform.h" #include "tsan_rtl.h" #include "tsan_suppressions.h" @@ -21,6 +22,8 @@ #include "tsan_flags.h" #include "tsan_placement_new.h" +using namespace __sanitizer; // NOLINT + namespace __tsan { // Can be overriden by an application/test to intercept reports. |