aboutsummaryrefslogtreecommitdiff
path: root/libfuzzer/FuzzerInterceptors.cpp
diff options
context:
space:
mode:
authorJoel Galenson <jgalenson@google.com>2021-04-05 17:14:41 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-04-05 17:14:41 +0000
commit20420b19577e0677b49adc48515cf492ecb76510 (patch)
treeb40cfd9e8802b2879a81663220a69c0d24691ebf /libfuzzer/FuzzerInterceptors.cpp
parentaa95cac2104deb03bff16b617beddd7822903517 (diff)
parentd2f65654664d2c613523c7cfa351c0a821402b51 (diff)
downloadlibfuzzer-sys-android12-qpr1-d-s3-release.tar.gz
Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/libfuzzer-sys/+/1662761 Change-Id: Id51e18804bd04a1d53ae6d055181e0cbce3bf7dd
Diffstat (limited to 'libfuzzer/FuzzerInterceptors.cpp')
-rw-r--r--libfuzzer/FuzzerInterceptors.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/libfuzzer/FuzzerInterceptors.cpp b/libfuzzer/FuzzerInterceptors.cpp
index a1a6478..b877986 100644
--- a/libfuzzer/FuzzerInterceptors.cpp
+++ b/libfuzzer/FuzzerInterceptors.cpp
@@ -27,7 +27,6 @@
#include <cassert>
#include <cstdint>
#include <dlfcn.h> // for dlsym()
-#include <sanitizer/common_interface_defs.h>
static void *getFuncAddr(const char *name, uintptr_t wrapper_addr) {
void *addr = dlsym(RTLD_NEXT, name);
@@ -119,6 +118,25 @@ static char *internal_strstr(const char *haystack, const char *needle) {
extern "C" {
+// Weak hooks forward-declared to avoid dependency on
+// <sanitizer/common_interface_defs.h>.
+void __sanitizer_weak_hook_memcmp(void *called_pc, const void *s1,
+ const void *s2, size_t n, int result);
+void __sanitizer_weak_hook_strncmp(void *called_pc, const char *s1,
+ const char *s2, size_t n, int result);
+void __sanitizer_weak_hook_strncasecmp(void *called_pc, const char *s1,
+ const char *s2, size_t n, int result);
+void __sanitizer_weak_hook_strcmp(void *called_pc, const char *s1,
+ const char *s2, int result);
+void __sanitizer_weak_hook_strcasecmp(void *called_pc, const char *s1,
+ const char *s2, int result);
+void __sanitizer_weak_hook_strstr(void *called_pc, const char *s1,
+ const char *s2, char *result);
+void __sanitizer_weak_hook_strcasestr(void *called_pc, const char *s1,
+ const char *s2, char *result);
+void __sanitizer_weak_hook_memmem(void *called_pc, const void *s1, size_t len1,
+ const void *s2, size_t len2, void *result);
+
DEFINE_REAL(int, bcmp, const void *, const void *, size_t)
DEFINE_REAL(int, memcmp, const void *, const void *, size_t)
DEFINE_REAL(int, strncmp, const char *, const char *, size_t)