Move OPENSSL_ASAN to base.h. Saves having it in several places. Change-Id: I329e1bf4dd4a7f51396e36e2604280fcca32b58c Reviewed-on: https://boringssl-review.googlesource.com/16026 Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/crypto/fipsmodule/bcm.c b/crypto/fipsmodule/bcm.c index 4dbaef9..62abd70 100644 --- a/crypto/fipsmodule/bcm.c +++ b/crypto/fipsmodule/bcm.c
@@ -95,14 +95,6 @@ #if defined(BORINGSSL_FIPS) -#if defined(__has_feature) -#if __has_feature(address_sanitizer) -/* Integrity tests cannot run under ASAN because it involves reading the full - * .text section, which triggers the global-buffer overflow detection. */ -#define OPENSSL_ASAN -#endif -#endif - static void hexdump(const uint8_t *in, size_t len) { for (size_t i = 0; i < len; i++) { printf("%02x", in[i]); @@ -296,7 +288,7 @@ return ec_key; } -#ifndef OPENSSL_ASAN +#if !defined(OPENSSL_ASAN) /* These symbols are filled in by delocate.go. They point to the start and end * of the module, and the location of the integrity hash, respectively. */ extern const uint8_t BORINGSSL_bcm_text_start[]; @@ -309,7 +301,9 @@ static void BORINGSSL_bcm_power_on_self_test(void) { CRYPTO_library_init(); -#ifndef OPENSSL_ASAN +#if !defined(OPENSSL_ASAN) + /* Integrity tests cannot run under ASAN because it involves reading the full + * .text section, which triggers the global-buffer overflow detection. */ const uint8_t *const start = BORINGSSL_bcm_text_start; const uint8_t *const end = BORINGSSL_bcm_text_end;
diff --git a/crypto/fipsmodule/is_fips.c b/crypto/fipsmodule/is_fips.c index 9af0dd2..bff1a05 100644 --- a/crypto/fipsmodule/is_fips.c +++ b/crypto/fipsmodule/is_fips.c
@@ -18,12 +18,6 @@ /* This file exists in order to give the fipsmodule target, in non-FIPS mode, * something to compile. */ -#if defined(__has_feature) -#if __has_feature(address_sanitizer) -#define OPENSSL_ASAN -#endif -#endif - int FIPS_mode(void) { #if defined(BORINGSSL_FIPS) && !defined(OPENSSL_ASAN) return 1;
diff --git a/crypto/test/malloc.cc b/crypto/test/malloc.cc index 33f0972..bb1a6a6 100644 --- a/crypto/test/malloc.cc +++ b/crypto/test/malloc.cc
@@ -16,7 +16,7 @@ #if defined(__has_feature) #if __has_feature(address_sanitizer) || __has_feature(memory_sanitizer) -#define OPENSSL_ASAN +#define OPENSSL_ASAN_OR_MSAN #endif #endif @@ -32,7 +32,7 @@ // TODO(davidben): See if this and ASan's and MSan's interceptors can be made to // coexist. #if defined(__linux__) && defined(OPENSSL_GLIBC) && !defined(OPENSSL_ARM) && \ - !defined(OPENSSL_AARCH64) && !defined(OPENSSL_ASAN) + !defined(OPENSSL_AARCH64) && !defined(OPENSSL_ASAN_OR_MSAN) #include <errno.h> #include <signal.h>
diff --git a/include/openssl/base.h b/include/openssl/base.h index c8ebee8..6ea9501 100644 --- a/include/openssl/base.h +++ b/include/openssl/base.h
@@ -202,6 +202,12 @@ #define BORINGSSL_UNSAFE_DETERMINISTIC_MODE #endif +#if defined(__has_feature) +#if __has_feature(address_sanitizer) +#define OPENSSL_ASAN +#endif +#endif + /* CRYPTO_THREADID is a dummy value. */ typedef int CRYPTO_THREADID;