[sanitizer] Replace uptr by usize/SIZE_T in interfaces
For some targets uptr is mapped to unsigned int and size_t to unsigned long and sizeof(int)==sizeof(long) holds. Still, these are distinct types and type checking may fail. Therefore, replace uptr by usize/SIZE_T wherever a size_t is expected. Part of #116957
This commit is contained in:
committed by
Vitaly Buka
parent
16c2a1016e
commit
9a156f6b2b
@@ -85,7 +85,7 @@ int OnExit() {
|
||||
// ---------------------- Wrappers ---------------- {{{1
|
||||
using namespace __asan;
|
||||
|
||||
DECLARE_REAL_AND_INTERCEPTOR(void *, malloc, uptr)
|
||||
DECLARE_REAL_AND_INTERCEPTOR(void *, malloc, usize)
|
||||
DECLARE_REAL_AND_INTERCEPTOR(void, free, void *)
|
||||
|
||||
#define COMMON_INTERCEPT_FUNCTION_VER(name, ver) \
|
||||
@@ -529,7 +529,7 @@ DEFINE_REAL(char*, index, const char *string, int c)
|
||||
return REAL(strcat)(to, from);
|
||||
}
|
||||
|
||||
INTERCEPTOR(char*, strncat, char *to, const char *from, uptr size) {
|
||||
INTERCEPTOR(char*, strncat, char *to, const char *from, usize size) {
|
||||
void *ctx;
|
||||
ASAN_INTERCEPTOR_ENTER(ctx, strncat);
|
||||
AsanInitFromRtl();
|
||||
@@ -617,7 +617,7 @@ INTERCEPTOR(char*, __strdup, const char *s) {
|
||||
}
|
||||
#endif // ASAN_INTERCEPT___STRDUP
|
||||
|
||||
INTERCEPTOR(char*, strncpy, char *to, const char *from, uptr size) {
|
||||
INTERCEPTOR(char*, strncpy, char *to, const char *from, usize size) {
|
||||
void *ctx;
|
||||
ASAN_INTERCEPTOR_ENTER(ctx, strncpy);
|
||||
AsanInitFromRtl();
|
||||
|
||||
@@ -124,11 +124,11 @@ void InitializePlatformInterceptors();
|
||||
# define ASAN_INTERCEPT_PTHREAD_ATFORK 0
|
||||
#endif
|
||||
|
||||
DECLARE_REAL(int, memcmp, const void *a1, const void *a2, uptr size)
|
||||
DECLARE_REAL(int, memcmp, const void *a1, const void *a2, SIZE_T size)
|
||||
DECLARE_REAL(char*, strchr, const char *str, int c)
|
||||
DECLARE_REAL(SIZE_T, strlen, const char *s)
|
||||
DECLARE_REAL(char*, strncpy, char *to, const char *from, uptr size)
|
||||
DECLARE_REAL(uptr, strnlen, const char *s, uptr maxlen)
|
||||
DECLARE_REAL(char*, strncpy, char *to, const char *from, SIZE_T size)
|
||||
DECLARE_REAL(SIZE_T, strnlen, const char *s, SIZE_T maxlen)
|
||||
DECLARE_REAL(char*, strstr, const char *s1, const char *s2)
|
||||
|
||||
# if !SANITIZER_APPLE
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
#include "asan_mapping.h"
|
||||
#include "interception/interception.h"
|
||||
|
||||
DECLARE_REAL(void *, memcpy, void *to, const void *from, uptr size)
|
||||
DECLARE_REAL(void *, memset, void *block, int c, uptr size)
|
||||
DECLARE_REAL(void *, memcpy, void *to, const void *from, SIZE_T size)
|
||||
DECLARE_REAL(void *, memset, void *block, int c, SIZE_T size)
|
||||
|
||||
namespace __asan {
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ int OnExit() {
|
||||
// ---------------------- Wrappers ---------------- {{{1
|
||||
using namespace __memprof;
|
||||
|
||||
DECLARE_REAL_AND_INTERCEPTOR(void *, malloc, uptr)
|
||||
DECLARE_REAL_AND_INTERCEPTOR(void *, malloc, usize)
|
||||
DECLARE_REAL_AND_INTERCEPTOR(void, free, void *)
|
||||
|
||||
#define COMMON_INTERCEPT_FUNCTION_VER(name, ver) \
|
||||
|
||||
@@ -33,11 +33,11 @@ void InitializePlatformInterceptors();
|
||||
|
||||
} // namespace __memprof
|
||||
|
||||
DECLARE_REAL(int, memcmp, const void *a1, const void *a2, uptr size)
|
||||
DECLARE_REAL(int, memcmp, const void *a1, const void *a2, SIZE_T size)
|
||||
DECLARE_REAL(char *, strchr, const char *str, int c)
|
||||
DECLARE_REAL(SIZE_T, strlen, const char *s)
|
||||
DECLARE_REAL(char *, strncpy, char *to, const char *from, uptr size)
|
||||
DECLARE_REAL(uptr, strnlen, const char *s, uptr maxlen)
|
||||
DECLARE_REAL(char *, strncpy, char *to, const char *from, SIZE_T size)
|
||||
DECLARE_REAL(SIZE_T, strnlen, const char *s, SIZE_T maxlen)
|
||||
DECLARE_REAL(char *, strstr, const char *s1, const char *s2)
|
||||
|
||||
#define MEMPROF_INTERCEPT_FUNC(name) \
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
#include "memprof_internal.h"
|
||||
#include "memprof_mapping.h"
|
||||
|
||||
DECLARE_REAL(void *, memcpy, void *to, const void *from, uptr size)
|
||||
DECLARE_REAL(void *, memset, void *block, int c, uptr size)
|
||||
DECLARE_REAL(void *, memcpy, void *to, const void *from, SIZE_T size)
|
||||
DECLARE_REAL(void *, memset, void *block, int c, SIZE_T size)
|
||||
|
||||
namespace __memprof {
|
||||
|
||||
|
||||
@@ -59,8 +59,8 @@ using __sanitizer::atomic_uintptr_t;
|
||||
|
||||
DECLARE_REAL(SIZE_T, strlen, const char *s)
|
||||
DECLARE_REAL(SIZE_T, strnlen, const char *s, SIZE_T maxlen)
|
||||
DECLARE_REAL(void *, memcpy, void *dest, const void *src, uptr n)
|
||||
DECLARE_REAL(void *, memset, void *dest, int c, uptr n)
|
||||
DECLARE_REAL(void *, memcpy, void *dest, const void *src, SIZE_T n)
|
||||
DECLARE_REAL(void *, memset, void *dest, int c, SIZE_T n)
|
||||
|
||||
// True if this is a nested interceptor.
|
||||
static THREADLOCAL int in_interceptor_scope;
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
#include "msan_thread.h"
|
||||
#include "sanitizer_common/sanitizer_common.h"
|
||||
|
||||
DECLARE_REAL(void *, memset, void *dest, int c, uptr n)
|
||||
DECLARE_REAL(void *, memcpy, void *dest, const void *src, uptr n)
|
||||
DECLARE_REAL(void *, memmove, void *dest, const void *src, uptr n)
|
||||
DECLARE_REAL(void *, memset, void *dest, int c, SIZE_T n)
|
||||
DECLARE_REAL(void *, memcpy, void *dest, const void *src, SIZE_T n)
|
||||
DECLARE_REAL(void *, memmove, void *dest, const void *src, SIZE_T n)
|
||||
|
||||
namespace __msan {
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
|
||||
using namespace __nsan;
|
||||
|
||||
DECLARE_REAL(void *, memcpy, void *dest, const void *src, uptr n)
|
||||
DECLARE_REAL(void *, memset, void *dest, int c, uptr n)
|
||||
DECLARE_REAL(void *, memcpy, void *dest, const void *src, SIZE_T n)
|
||||
DECLARE_REAL(void *, memset, void *dest, int c, SIZE_T n)
|
||||
|
||||
namespace {
|
||||
struct Metadata {
|
||||
|
||||
@@ -28,7 +28,7 @@ using namespace __sanitizer;
|
||||
|
||||
template <typename T> T min(T a, T b) { return a < b ? a : b; }
|
||||
|
||||
INTERCEPTOR(void *, memset, void *dst, int v, uptr size) {
|
||||
INTERCEPTOR(void *, memset, void *dst, int v, usize size) {
|
||||
// NOTE: This guard is needed because nsan's initialization code might call
|
||||
// memset.
|
||||
if (!nsan_initialized && REAL(memset) == nullptr)
|
||||
@@ -39,13 +39,13 @@ INTERCEPTOR(void *, memset, void *dst, int v, uptr size) {
|
||||
return res;
|
||||
}
|
||||
|
||||
INTERCEPTOR(wchar_t *, wmemset, wchar_t *dst, wchar_t v, uptr size) {
|
||||
INTERCEPTOR(wchar_t *, wmemset, wchar_t *dst, wchar_t v, usize size) {
|
||||
wchar_t *res = REAL(wmemset)(dst, v, size);
|
||||
__nsan_set_value_unknown((u8 *)dst, sizeof(wchar_t) * size);
|
||||
return res;
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, memmove, void *dst, const void *src, uptr size) {
|
||||
INTERCEPTOR(void *, memmove, void *dst, const void *src, usize size) {
|
||||
// NOTE: This guard is needed because nsan's initialization code might call
|
||||
// memmove.
|
||||
if (!nsan_initialized && REAL(memmove) == nullptr)
|
||||
@@ -57,13 +57,13 @@ INTERCEPTOR(void *, memmove, void *dst, const void *src, uptr size) {
|
||||
return res;
|
||||
}
|
||||
|
||||
INTERCEPTOR(wchar_t *, wmemmove, wchar_t *dst, const wchar_t *src, uptr size) {
|
||||
INTERCEPTOR(wchar_t *, wmemmove, wchar_t *dst, const wchar_t *src, usize size) {
|
||||
wchar_t *res = REAL(wmemmove)(dst, src, size);
|
||||
__nsan_copy_values((u8 *)dst, (const u8 *)src, sizeof(wchar_t) * size);
|
||||
return res;
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, memcpy, void *dst, const void *src, uptr size) {
|
||||
INTERCEPTOR(void *, memcpy, void *dst, const void *src, usize size) {
|
||||
// NOTE: This guard is needed because nsan's initialization code might call
|
||||
// memcpy.
|
||||
if (!nsan_initialized && REAL(memcpy) == nullptr) {
|
||||
@@ -78,7 +78,7 @@ INTERCEPTOR(void *, memcpy, void *dst, const void *src, uptr size) {
|
||||
return res;
|
||||
}
|
||||
|
||||
INTERCEPTOR(wchar_t *, wmemcpy, wchar_t *dst, const wchar_t *src, uptr size) {
|
||||
INTERCEPTOR(wchar_t *, wmemcpy, wchar_t *dst, const wchar_t *src, usize size) {
|
||||
wchar_t *res = REAL(wmemcpy)(dst, src, size);
|
||||
__nsan_copy_values((u8 *)dst, (const u8 *)src, sizeof(wchar_t) * size);
|
||||
return res;
|
||||
@@ -136,7 +136,7 @@ INTERCEPTOR(wchar_t *, wcsdup, const wchar_t *S) {
|
||||
return res;
|
||||
}
|
||||
|
||||
INTERCEPTOR(char *, strndup, const char *S, uptr size) {
|
||||
INTERCEPTOR(char *, strndup, const char *S, usize size) {
|
||||
char *res = REAL(strndup)(S, size);
|
||||
if (res) {
|
||||
nsanCopyZeroTerminated(res, S, min(internal_strlen(S), size));
|
||||
@@ -156,7 +156,7 @@ INTERCEPTOR(wchar_t *, wcscpy, wchar_t *dst, const wchar_t *src) {
|
||||
return res;
|
||||
}
|
||||
|
||||
INTERCEPTOR(char *, strncpy, char *dst, const char *src, uptr size) {
|
||||
INTERCEPTOR(char *, strncpy, char *dst, const char *src, usize size) {
|
||||
char *res = REAL(strncpy)(dst, src, size);
|
||||
nsanCopyZeroTerminated(dst, src, min(size, internal_strlen(src)));
|
||||
return res;
|
||||
@@ -176,7 +176,7 @@ INTERCEPTOR(wchar_t *, wcscat, wchar_t *dst, const wchar_t *src) {
|
||||
return res;
|
||||
}
|
||||
|
||||
INTERCEPTOR(char *, strncat, char *dst, const char *src, uptr size) {
|
||||
INTERCEPTOR(char *, strncat, char *dst, const char *src, usize size) {
|
||||
const auto DstLen = internal_strlen(dst);
|
||||
char *res = REAL(strncat)(dst, src, size);
|
||||
nsanCopyZeroTerminated(dst + DstLen, src, min(size, internal_strlen(src)));
|
||||
@@ -195,11 +195,10 @@ INTERCEPTOR(wchar_t *, wcpcpy, wchar_t *dst, const wchar_t *src) {
|
||||
return res;
|
||||
}
|
||||
|
||||
INTERCEPTOR(uptr, strxfrm, char *dst, const char *src, uptr size) {
|
||||
INTERCEPTOR(usize, strxfrm, char *dst, const char *src, usize size) {
|
||||
// This is overly conservative, but this function should very rarely be used.
|
||||
__nsan_set_value_unknown(reinterpret_cast<u8 *>(dst), internal_strlen(dst));
|
||||
const uptr res = REAL(strxfrm)(dst, src, size);
|
||||
return res;
|
||||
return REAL(strxfrm)(dst, src, size);
|
||||
}
|
||||
|
||||
extern "C" int pthread_attr_init(void *attr);
|
||||
|
||||
@@ -445,7 +445,7 @@ INTERCEPTOR(SIZE_T, strnlen, const char *s, SIZE_T maxlen) {
|
||||
#endif
|
||||
|
||||
#if SANITIZER_INTERCEPT_STRNDUP
|
||||
INTERCEPTOR(char*, strndup, const char *s, uptr size) {
|
||||
INTERCEPTOR(char*, strndup, const char *s, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_STRNDUP_IMPL(ctx, s, size);
|
||||
}
|
||||
@@ -455,7 +455,7 @@ INTERCEPTOR(char*, strndup, const char *s, uptr size) {
|
||||
#endif // SANITIZER_INTERCEPT_STRNDUP
|
||||
|
||||
#if SANITIZER_INTERCEPT___STRNDUP
|
||||
INTERCEPTOR(char*, __strndup, const char *s, uptr size) {
|
||||
INTERCEPTOR(char*, __strndup, const char *s, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_STRNDUP_IMPL(ctx, s, size);
|
||||
}
|
||||
@@ -511,10 +511,10 @@ INTERCEPTOR(int, strcmp, const char *s1, const char *s2) {
|
||||
}
|
||||
|
||||
DECLARE_WEAK_INTERCEPTOR_HOOK(__sanitizer_weak_hook_strncmp, uptr called_pc,
|
||||
const char *s1, const char *s2, uptr n,
|
||||
const char *s1, const char *s2, usize n,
|
||||
int result)
|
||||
|
||||
INTERCEPTOR(int, strncmp, const char *s1, const char *s2, uptr size) {
|
||||
INTERCEPTOR(int, strncmp, const char *s1, const char *s2, usize size) {
|
||||
if (COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED)
|
||||
return internal_strncmp(s1, s2, size);
|
||||
void *ctx;
|
||||
@@ -576,7 +576,7 @@ INTERCEPTOR(int, strcasecmp, const char *s1, const char *s2) {
|
||||
}
|
||||
|
||||
DECLARE_WEAK_INTERCEPTOR_HOOK(__sanitizer_weak_hook_strncasecmp, uptr called_pc,
|
||||
const char *s1, const char *s2, uptr size,
|
||||
const char *s1, const char *s2, usize size,
|
||||
int result)
|
||||
|
||||
INTERCEPTOR(int, strncasecmp, const char *s1, const char *s2, SIZE_T size) {
|
||||
@@ -833,13 +833,13 @@ INTERCEPTOR(char *, strpbrk, const char *s1, const char *s2) {
|
||||
|
||||
#if SANITIZER_INTERCEPT_MEMCMP
|
||||
DECLARE_WEAK_INTERCEPTOR_HOOK(__sanitizer_weak_hook_memcmp, uptr called_pc,
|
||||
const void *s1, const void *s2, uptr n,
|
||||
const void *s1, const void *s2, usize n,
|
||||
int result)
|
||||
|
||||
// Common code for `memcmp` and `bcmp`.
|
||||
int MemcmpInterceptorCommon(void *ctx,
|
||||
int (*real_fn)(const void *, const void *, uptr),
|
||||
const void *a1, const void *a2, uptr size) {
|
||||
int (*real_fn)(const void *, const void *, usize),
|
||||
const void *a1, const void *a2, usize size) {
|
||||
if (common_flags()->intercept_memcmp) {
|
||||
if (common_flags()->strict_memcmp) {
|
||||
// Check the entire regions even if the first bytes of the buffers are
|
||||
@@ -871,7 +871,7 @@ int MemcmpInterceptorCommon(void *ctx,
|
||||
return result;
|
||||
}
|
||||
|
||||
INTERCEPTOR(int, memcmp, const void *a1, const void *a2, uptr size) {
|
||||
INTERCEPTOR(int, memcmp, const void *a1, const void *a2, usize size) {
|
||||
if (COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED)
|
||||
return internal_memcmp(a1, a2, size);
|
||||
void *ctx;
|
||||
@@ -885,7 +885,7 @@ INTERCEPTOR(int, memcmp, const void *a1, const void *a2, uptr size) {
|
||||
#endif
|
||||
|
||||
#if SANITIZER_INTERCEPT_BCMP
|
||||
INTERCEPTOR(int, bcmp, const void *a1, const void *a2, uptr size) {
|
||||
INTERCEPTOR(int, bcmp, const void *a1, const void *a2, usize size) {
|
||||
if (COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED)
|
||||
return internal_memcmp(a1, a2, size);
|
||||
void *ctx;
|
||||
@@ -1138,7 +1138,7 @@ INTERCEPTOR(SSIZE_T, write, int fd, void *ptr, SIZE_T count) {
|
||||
#endif
|
||||
|
||||
#if SANITIZER_INTERCEPT_FWRITE
|
||||
INTERCEPTOR(SIZE_T, fwrite, const void *p, uptr size, uptr nmemb, void *file) {
|
||||
INTERCEPTOR(SIZE_T, fwrite, const void *p, usize size, usize nmemb, void *file) {
|
||||
// libc file streams can call user-supplied functions, see fopencookie.
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_ENTER(ctx, fwrite, p, size, nmemb, file);
|
||||
@@ -6553,12 +6553,12 @@ static void MlockIsUnsupported() {
|
||||
SanitizerToolName);
|
||||
}
|
||||
|
||||
INTERCEPTOR(int, mlock, const void *addr, uptr len) {
|
||||
INTERCEPTOR(int, mlock, const void *addr, usize len) {
|
||||
MlockIsUnsupported();
|
||||
return 0;
|
||||
}
|
||||
|
||||
INTERCEPTOR(int, munlock, const void *addr, uptr len) {
|
||||
INTERCEPTOR(int, munlock, const void *addr, usize len) {
|
||||
MlockIsUnsupported();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
#endif
|
||||
|
||||
#if SANITIZER_INTERCEPT_MEMSET
|
||||
INTERCEPTOR(void *, memset, void *dst, int v, uptr size) {
|
||||
INTERCEPTOR(void *, memset, void *dst, int v, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, dst, v, size);
|
||||
}
|
||||
@@ -93,7 +93,7 @@ INTERCEPTOR(void *, memset, void *dst, int v, uptr size) {
|
||||
#endif
|
||||
|
||||
#if SANITIZER_INTERCEPT_MEMMOVE
|
||||
INTERCEPTOR(void *, memmove, void *dst, const void *src, uptr size) {
|
||||
INTERCEPTOR(void *, memmove, void *dst, const void *src, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMMOVE_IMPL(ctx, dst, src, size);
|
||||
}
|
||||
@@ -104,7 +104,7 @@ INTERCEPTOR(void *, memmove, void *dst, const void *src, uptr size) {
|
||||
#endif
|
||||
|
||||
#if SANITIZER_INTERCEPT_MEMCPY
|
||||
INTERCEPTOR(void *, memcpy, void *dst, const void *src, uptr size) {
|
||||
INTERCEPTOR(void *, memcpy, void *dst, const void *src, usize size) {
|
||||
// On OS X, calling internal_memcpy here will cause memory corruptions,
|
||||
// because memcpy and memmove are actually aliases of the same
|
||||
// implementation. We need to use internal_memmove here.
|
||||
@@ -133,63 +133,63 @@ INTERCEPTOR(void *, memcpy, void *dst, const void *src, uptr size) {
|
||||
#endif
|
||||
|
||||
#if SANITIZER_INTERCEPT_AEABI_MEM
|
||||
INTERCEPTOR(void *, __aeabi_memmove, void *to, const void *from, uptr size) {
|
||||
INTERCEPTOR(void *, __aeabi_memmove, void *to, const void *from, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMMOVE_IMPL(ctx, to, from, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memmove4, void *to, const void *from, uptr size) {
|
||||
INTERCEPTOR(void *, __aeabi_memmove4, void *to, const void *from, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMMOVE_IMPL(ctx, to, from, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memmove8, void *to, const void *from, uptr size) {
|
||||
INTERCEPTOR(void *, __aeabi_memmove8, void *to, const void *from, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMMOVE_IMPL(ctx, to, from, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memcpy, void *to, const void *from, uptr size) {
|
||||
INTERCEPTOR(void *, __aeabi_memcpy, void *to, const void *from, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMCPY_IMPL(ctx, to, from, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memcpy4, void *to, const void *from, uptr size) {
|
||||
INTERCEPTOR(void *, __aeabi_memcpy4, void *to, const void *from, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMCPY_IMPL(ctx, to, from, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memcpy8, void *to, const void *from, uptr size) {
|
||||
INTERCEPTOR(void *, __aeabi_memcpy8, void *to, const void *from, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMCPY_IMPL(ctx, to, from, size);
|
||||
}
|
||||
|
||||
// Note the argument order.
|
||||
INTERCEPTOR(void *, __aeabi_memset, void *block, uptr size, int c) {
|
||||
INTERCEPTOR(void *, __aeabi_memset, void *block, usize size, int c) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, block, c, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memset4, void *block, uptr size, int c) {
|
||||
INTERCEPTOR(void *, __aeabi_memset4, void *block, usize size, int c) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, block, c, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memset8, void *block, uptr size, int c) {
|
||||
INTERCEPTOR(void *, __aeabi_memset8, void *block, usize size, int c) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, block, c, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memclr, void *block, uptr size) {
|
||||
INTERCEPTOR(void *, __aeabi_memclr, void *block, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, block, 0, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memclr4, void *block, uptr size) {
|
||||
INTERCEPTOR(void *, __aeabi_memclr4, void *block, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, block, 0, size);
|
||||
}
|
||||
|
||||
INTERCEPTOR(void *, __aeabi_memclr8, void *block, uptr size) {
|
||||
INTERCEPTOR(void *, __aeabi_memclr8, void *block, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, block, 0, size);
|
||||
}
|
||||
@@ -212,7 +212,7 @@ INTERCEPTOR(void *, __aeabi_memclr8, void *block, uptr size) {
|
||||
#endif // SANITIZER_INTERCEPT_AEABI_MEM
|
||||
|
||||
#if SANITIZER_INTERCEPT___BZERO
|
||||
INTERCEPTOR(void *, __bzero, void *block, uptr size) {
|
||||
INTERCEPTOR(void *, __bzero, void *block, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, block, 0, size);
|
||||
}
|
||||
@@ -222,7 +222,7 @@ INTERCEPTOR(void *, __bzero, void *block, uptr size) {
|
||||
#endif // SANITIZER_INTERCEPT___BZERO
|
||||
|
||||
#if SANITIZER_INTERCEPT_BZERO
|
||||
INTERCEPTOR(void *, bzero, void *block, uptr size) {
|
||||
INTERCEPTOR(void *, bzero, void *block, usize size) {
|
||||
void *ctx;
|
||||
COMMON_INTERCEPTOR_MEMSET_IMPL(ctx, block, 0, size);
|
||||
}
|
||||
|
||||
@@ -313,7 +313,7 @@ extern unsigned struct_statvfs_sz;
|
||||
|
||||
struct __sanitizer_iovec {
|
||||
void *iov_base;
|
||||
uptr iov_len;
|
||||
usize iov_len;
|
||||
};
|
||||
|
||||
#if !SANITIZER_ANDROID
|
||||
|
||||
@@ -97,7 +97,7 @@ extern "C" int pthread_key_create(unsigned *key, void (*destructor)(void* v));
|
||||
extern "C" int pthread_setspecific(unsigned key, const void *v);
|
||||
DECLARE_REAL(int, pthread_mutexattr_gettype, void *, void *)
|
||||
DECLARE_REAL(int, fflush, __sanitizer_FILE *fp)
|
||||
DECLARE_REAL_AND_INTERCEPTOR(void *, malloc, uptr size)
|
||||
DECLARE_REAL_AND_INTERCEPTOR(void *, malloc, usize size)
|
||||
DECLARE_REAL_AND_INTERCEPTOR(void, free, void *ptr)
|
||||
extern "C" int pthread_equal(void *t1, void *t2);
|
||||
extern "C" void *pthread_self();
|
||||
@@ -768,7 +768,7 @@ TSAN_INTERCEPTOR(char *, strcpy, char *dst, const char *src) {
|
||||
return REAL(strcpy)(dst, src);
|
||||
}
|
||||
|
||||
TSAN_INTERCEPTOR(char*, strncpy, char *dst, char *src, uptr n) {
|
||||
TSAN_INTERCEPTOR(char*, strncpy, char *dst, char *src, usize n) {
|
||||
SCOPED_TSAN_INTERCEPTOR(strncpy, dst, src, n);
|
||||
uptr srclen = internal_strnlen(src, n);
|
||||
MemoryAccessRange(thr, pc, (uptr)dst, n, true);
|
||||
|
||||
Reference in New Issue
Block a user