[libc-commits] [libc] 66ce716 - Revert "[libc] Make LlvmLibcStackChkFail.Smash test compatible with asan, hwasan" (#125785)
via libc-commits
libc-commits at lists.llvm.org
Tue Feb 4 16:06:24 PST 2025
Author: Roland McGrath
Date: 2025-02-04T16:06:21-08:00
New Revision: 66ce716676c49d93d8a6c2ed557f182befaa4ded
URL: https://github.com/llvm/llvm-project/commit/66ce716676c49d93d8a6c2ed557f182befaa4ded
DIFF: https://github.com/llvm/llvm-project/commit/66ce716676c49d93d8a6c2ed557f182befaa4ded.diff
LOG: Revert "[libc] Make LlvmLibcStackChkFail.Smash test compatible with asan, hwasan" (#125785)
Reverts llvm/llvm-project#125763
This causes failures in asan. More thought is needed.
Added:
Modified:
libc/test/src/compiler/stack_chk_guard_test.cpp
Removed:
################################################################################
diff --git a/libc/test/src/compiler/stack_chk_guard_test.cpp b/libc/test/src/compiler/stack_chk_guard_test.cpp
index d1869a2af412e41..4ec8398c9fc95dc 100644
--- a/libc/test/src/compiler/stack_chk_guard_test.cpp
+++ b/libc/test/src/compiler/stack_chk_guard_test.cpp
@@ -12,24 +12,19 @@
#include "src/string/memset.h"
#include "test/UnitTest/Test.h"
-namespace {
-
TEST(LlvmLibcStackChkFail, Death) {
EXPECT_DEATH([] { __stack_chk_fail(); }, WITH_SIGNAL(SIGABRT));
}
-// Disable sanitizers such as asan and hwasan that would catch the buffer
-// overrun before it clobbered the stack canary word. Function attributes
-// can't be applied to lambdas before C++23, so this has to be separate. When
-// https://github.com/llvm/llvm-project/issues/125760 is fixed, this can use
-// the modern spelling [[gnu::no_sanitize(...)]] without conditionalization.
-__attribute__((no_sanitize("all"))) void smash_stack() {
- int arr[20];
- LIBC_NAMESPACE::memset(arr, 0xAA, 2001);
-}
-
+// Disable the test when asan is enabled so that it doesn't immediately fail
+// after the memset, but before the stack canary is re-checked.
+#ifndef LIBC_HAS_ADDRESS_SANITIZER
TEST(LlvmLibcStackChkFail, Smash) {
- EXPECT_DEATH(smash_stack, WITH_SIGNAL(SIGABRT));
+ EXPECT_DEATH(
+ [] {
+ int arr[20];
+ LIBC_NAMESPACE::memset(arr, 0xAA, 2001);
+ },
+ WITH_SIGNAL(SIGABRT));
}
-
-} // namespace
+#endif // LIBC_HAS_ADDRESS_SANITIZER
More information about the libc-commits
mailing list