diff --git a/libc/test/src/compiler/stack_chk_guard_test.cpp b/libc/test/src/compiler/stack_chk_guard_test.cpp index 6f1bd73b1faa3b..18bdc8f2a6e2ed 100644 --- a/libc/test/src/compiler/stack_chk_guard_test.cpp +++ b/libc/test/src/compiler/stack_chk_guard_test.cpp @@ -15,11 +15,13 @@ TEST(LlvmLibcStackChkFail, Death) { EXPECT_DEATH([] { __stack_chk_fail(); }, WITH_SIGNAL(SIGABRT)); } +// Disable asan so that it doesn't immediately fail after the memset, but before +// the stack canary is re-checked. +[[gnu::no_sanitize_address]] static void smash_stack() { + int arr[20]; + LIBC_NAMESPACE::memset(arr, 0xAA, 2001); +} + TEST(LlvmLibcStackChkFail, Smash) { - EXPECT_DEATH( - [] [[gnu::no_sanitize]] { - int arr[20]; - LIBC_NAMESPACE::memset(arr, 0xAA, 2001); - }, - WITH_SIGNAL(SIGABRT)); + EXPECT_DEATH(smash_stack, WITH_SIGNAL(SIGABRT)); }