From abc9b18c996367a7eb21d60d8ef58183457608bb Mon Sep 17 00:00:00 2001 From: Otto Moerbeek Date: Tue, 5 Jan 2021 11:10:08 +0100 Subject: [PATCH] Enable address sanitizer on MacOS --- pdns/mtasker.hh | 8 ++++++++ pdns/recursordist/configure.ac | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pdns/mtasker.hh b/pdns/mtasker.hh index 2b9301d9a1..607ca57745 100644 --- a/pdns/mtasker.hh +++ b/pdns/mtasker.hh @@ -97,11 +97,19 @@ public: void initMainStackBounds() { #ifdef HAVE_FIBER_SANITIZER + +#ifdef HAVE_PTHREAD_GETATTR_NP pthread_attr_t attr; pthread_attr_init(&attr); pthread_getattr_np(pthread_self(), &attr); pthread_attr_getstack(&attr, &t_mainStack, &t_mainStackSize); pthread_attr_destroy(&attr); +#endif +#if defined(HAVE_PTHREAD_GET_STACKSIZE_NP) && defined(HAVE_PTHREAD_GET_STACKADDR_NP) + t_mainStack = pthread_get_stackaddr_np(pthread_self()); + t_mainStackSize = pthread_get_stacksize_np(pthread_self()); +#endif + #endif /* HAVE_FIBER_SANITIZER */ } diff --git a/pdns/recursordist/configure.ac b/pdns/recursordist/configure.ac index f5f525ad5e..b3437599b9 100644 --- a/pdns/recursordist/configure.ac +++ b/pdns/recursordist/configure.ac @@ -95,7 +95,7 @@ PDNS_CHECK_CURL dnl the *_r functions are in posix so we can use them unconditionally, but the ext/yahttp code is dnl using the defines. -AC_CHECK_FUNCS_ONCE([localtime_r gmtime_r strcasestr getrandom arc4random]) +AC_CHECK_FUNCS_ONCE([localtime_r gmtime_r strcasestr getrandom arc4random pthread_getattr_np pthread_get_stackaddr_np pthread_get_stacksize_np]) PDNS_CHECK_PTHREAD_NP -- 2.47.2