From 03a8f1d1617ee1e3d979645bef46d7315c450565 Mon Sep 17 00:00:00 2001 From: Arran Cudbard-Bell Date: Wed, 6 Nov 2019 11:09:15 -0600 Subject: [PATCH] Switch to compile time check for ASAN --- src/include/build.h | 12 ++++++++++++ src/lib/server/dependency.c | 12 ------------ src/lib/util/dl.c | 8 +++----- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/include/build.h b/src/include/build.h index 7a8ddbb6bcd..a068b3aa5f3 100644 --- a/src/include/build.h +++ b/src/include/build.h @@ -37,6 +37,18 @@ extern "C" { # define WITH_VERIFY_PTR 1 #endif +/* + * GCC uses __SANITIZE_ADDRESS__, clang uses __has_feature, which + * GCC complains about. + */ +#ifndef __SANITIZE_ADDRESS__ +#ifdef __has_feature +#if __has_feature(address_sanitizer) +#define __SANITIZE_ADDRESS__ (1) +#endif +#endif +#endif + /* * The ubiquitous stringify macros */ diff --git a/src/lib/server/dependency.c b/src/lib/server/dependency.c index e450c6e10c2..0e410ec0b8d 100644 --- a/src/lib/server/dependency.c +++ b/src/lib/server/dependency.c @@ -522,18 +522,6 @@ void dependency_features_init(CONF_SECTION *cs) #endif ); -/* - * GCC uses __SANITIZE_ADDRESS__, clang uses __has_feature, which - * GCC complains about. - */ -#ifndef __SANITIZE_ADDRESS__ -#ifdef __has_feature -#if __has_feature(address_sanitizer) -#define __SANITIZE_ADDRESS__ (1) -#endif -#endif -#endif - dependency_feature_add(cs, "address-sanitizer", #ifdef __SANITIZE_ADDRESS__ true diff --git a/src/lib/util/dl.c b/src/lib/util/dl.c index ba68631776b..448407c2f00 100644 --- a/src/lib/util/dl.c +++ b/src/lib/util/dl.c @@ -474,11 +474,9 @@ dl_t *dl_by_name(dl_loader_t *dl_loader, char const *name, void *uctx, bool uctx * * May help resolve issues with symbol conflicts. */ -#ifdef RTLD_DEEPBIND - if (fr_get_lsan_state() != 1) { - flags |= RTLD_DEEPBIND; - fr_strerror(); /* clear error buffer */ - } +#if defined(RTLD_DEEPBIND) && !defined(__SANITIZE_ADDRESS__) + flags |= RTLD_DEEPBIND; + fr_strerror(); /* clear error buffer */ #endif /* -- 2.47.3