#include "hwasan.h"
#include "hwasan_checks.h"
+#include "hwasan_platform_interceptors.h"
#include "hwasan_thread.h"
#include "hwasan_thread_list.h"
#include "interception/interception.h"
# include "sanitizer_common/sanitizer_common_syscalls.inc"
# include "sanitizer_common/sanitizer_syscalls_netbsd.inc"
+#define COMMON_INTERCEPTOR_WRITE_RANGE(ctx, ptr, size) \
+ do { \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_READ_RANGE(ctx, ptr, size) \
+ do { \
+ (void)(ctx); \
+ (void)(ptr); \
+ (void)(size); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_ENTER(ctx, func, ...) \
+ do { \
+ (void)(ctx); \
+ (void)(func); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_DIR_ACQUIRE(ctx, path) \
+ do { \
+ (void)(ctx); \
+ (void)(path); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_FD_ACQUIRE(ctx, fd) \
+ do { \
+ (void)(ctx); \
+ (void)(fd); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_FD_RELEASE(ctx, fd) \
+ do { \
+ (void)(ctx); \
+ (void)(fd); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_FD_SOCKET_ACCEPT(ctx, fd, newfd) \
+ do { \
+ (void)(ctx); \
+ (void)(fd); \
+ (void)(newfd); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_SET_THREAD_NAME(ctx, name) \
+ do { \
+ (void)(ctx); \
+ (void)(name); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_SET_PTHREAD_NAME(ctx, thread, name) \
+ do { \
+ (void)(ctx); \
+ (void)(thread); \
+ (void)(name); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_BLOCK_REAL(name) \
+ do { \
+ (void)(name); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_MEMMOVE_IMPL(ctx, to, from, size) \
+ do { \
+ (void)(ctx); \
+ (void)(to); \
+ (void)(from); \
+ (void)(size); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_MEMCPY_IMPL(ctx, to, from, size) \
+ do { \
+ (void)(ctx); \
+ (void)(to); \
+ (void)(from); \
+ (void)(size); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, block, c, size) \
+ do { \
+ (void)(ctx); \
+ (void)(block); \
+ (void)(c); \
+ (void)(size); \
+ } while (false)
+
+#define COMMON_INTERCEPTOR_STRERROR() \
+ do { \
+ } while (false)
+
+#define COMMON_INTERCEPT_FUNCTION(name) \
+ do { \
+ (void)(name); \
+ } while (false)
+
+#include "sanitizer_common/sanitizer_common_interceptors.inc"
+
struct ThreadStartArg {
__sanitizer_sigset_t starting_sigset_;
};
static int inited = 0;
CHECK_EQ(inited, 0);
+ (void)(InitializeCommonInterceptors);
+ (void)(read_iovec);
+ (void)(write_iovec);
+
# if HWASAN_WITH_INTERCEPTORS
# if defined(__linux__)
INTERCEPT_FUNCTION(__libc_longjmp);
#undef SANITIZER_INTERCEPT_ALIGNED_ALLOC
#undef SANITIZER_INTERCEPT_MALLOC_USABLE_SIZE
#undef SANITIZER_INTERCEPT_MCHECK_MPROBE
+#undef SANITIZER_INTERCEPT_WCSLEN
#undef SANITIZER_INTERCEPT_WCSCAT
#undef SANITIZER_INTERCEPT_WCSDUP
#undef SANITIZER_INTERCEPT_SIGNAL_AND_SIGACTION
#define SANITIZER_INTERCEPT_ALIGNED_ALLOC 0
#define SANITIZER_INTERCEPT_MALLOC_USABLE_SIZE 0
#define SANITIZER_INTERCEPT_MCHECK_MPROBE 0
+#define SANITIZER_INTERCEPT_WCSLEN 0
#define SANITIZER_INTERCEPT_WCSCAT 0
#define SANITIZER_INTERCEPT_WCSDUP 0
#define SANITIZER_INTERCEPT_SIGNAL_AND_SIGACTION 0