From 7334060f432f300ccbe8273cd2572509e568808b Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Fri, 23 Jun 2017 17:30:48 +0200 Subject: [PATCH] Add a workaround for old asan versions (CentOS 7) --- test/default/sodium_utils2.c | 7 +++++++ test/default/sodium_utils3.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/test/default/sodium_utils2.c b/test/default/sodium_utils2.c index 19c9b007..da8bbf2d 100644 --- a/test/default/sodium_utils2.c +++ b/test/default/sodium_utils2.c @@ -79,13 +79,20 @@ main(void) size = 1U + randombytes_uniform(100000U); buf = sodium_malloc(size); assert(buf != NULL); + +/* old versions of asan emit a warning because they don't support mlock*() */ +#ifndef __SANITIZE_ADDRESS__ sodium_mprotect_readonly(buf); sodium_mprotect_readwrite(buf); +#endif + #if defined(HAVE_CATCHABLE_SEGV) && !defined(__EMSCRIPTEN__) && !defined(__SANITIZE_ADDRESS__) sodium_memzero(((unsigned char *) buf) + size, 1U); sodium_mprotect_noaccess(buf); sodium_free(buf); printf("Overflow not caught\n"); +#else + segv_handler(0); #endif return 0; } diff --git a/test/default/sodium_utils3.c b/test/default/sodium_utils3.c index 778946a0..3f2b600e 100644 --- a/test/default/sodium_utils3.c +++ b/test/default/sodium_utils3.c @@ -49,13 +49,20 @@ main(void) size = 1U + randombytes_uniform(100000U); buf = sodium_malloc(size); assert(buf != NULL); + +/* old versions of asan emit a warning because they don't support mlock*() */ +#ifndef __SANITIZE_ADDRESS__ sodium_mprotect_noaccess(buf); sodium_mprotect_readwrite(buf); +#endif + #if defined(HAVE_CATCHABLE_SEGV) && !defined(__EMSCRIPTEN__) && !defined(__SANITIZE_ADDRESS__) sodium_memzero(((unsigned char *) buf) - 8, 8U); sodium_mprotect_readonly(buf); sodium_free(buf); printf("Underflow not caught\n"); +#else + segv_handler(0); #endif return 0; }