8 #define TEST_NAME "sodium_utils3"
11 #ifdef __SANITIZE_ADDRESS__
12 # warning The sodium_utils3 test is expected to fail with address sanitizer
15 __attribute__ ((noreturn
)) static void segv_handler(int sig
)
19 printf("Intentional segfault / bus error caught\n");
22 signal(SIGSEGV
, SIG_DFL
);
25 signal(SIGBUS
, SIG_DFL
);
28 signal(SIGABRT
, SIG_DFL
);
39 signal(SIGSEGV
, segv_handler
);
42 signal(SIGBUS
, segv_handler
);
45 signal(SIGABRT
, segv_handler
);
47 size
= 1U + randombytes_uniform(100000U);
48 buf
= sodium_malloc(size
);
50 sodium_mprotect_noaccess(buf
);
51 sodium_mprotect_readwrite(buf
);
52 #ifndef __EMSCRIPTEN__
53 sodium_memzero(((unsigned char *)buf
) - 8, 8U);
54 sodium_mprotect_readonly(buf
);
56 printf("Underflow not caught\n");