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; }