[libc-commits] [libc] 2276491 - [libc] try fixing LlvmLibcStackChkFail.Smash a third time (#75988)

via libc-commits libc-commits at lists.llvm.org
Tue Dec 19 16:23:32 PST 2023


Author: Nick Desaulniers
Date: 2023-12-19T16:23:29-08:00
New Revision: 22764918b5c1496970ab6bb1547535c554a06347

URL: https://github.com/llvm/llvm-project/commit/22764918b5c1496970ab6bb1547535c554a06347
DIFF: https://github.com/llvm/llvm-project/commit/22764918b5c1496970ab6bb1547535c554a06347.diff

LOG: [libc] try fixing LlvmLibcStackChkFail.Smash a third time (#75988)

Build bots are failing in post submit. Unclear why but can't reproduce
locally.
Disable this test for asan for now.

Added: 
    

Modified: 
    libc/test/src/compiler/CMakeLists.txt
    libc/test/src/compiler/stack_chk_guard_test.cpp

Removed: 
    


################################################################################
diff  --git a/libc/test/src/compiler/CMakeLists.txt b/libc/test/src/compiler/CMakeLists.txt
index b8d682c1c519a5..65a9acceb6f7f1 100644
--- a/libc/test/src/compiler/CMakeLists.txt
+++ b/libc/test/src/compiler/CMakeLists.txt
@@ -7,6 +7,7 @@ add_libc_unittest(
   SRCS
     stack_chk_guard_test.cpp
   DEPENDS
+    libc.src.__support.macros.sanitizer
     libc.src.compiler.__stack_chk_fail
     libc.src.string.memset
   COMPILE_OPTIONS

diff  --git a/libc/test/src/compiler/stack_chk_guard_test.cpp b/libc/test/src/compiler/stack_chk_guard_test.cpp
index 18bdc8f2a6e2ed..427e20c2ac5046 100644
--- a/libc/test/src/compiler/stack_chk_guard_test.cpp
+++ b/libc/test/src/compiler/stack_chk_guard_test.cpp
@@ -7,6 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm-libc-macros/signal-macros.h"
+#include "src/__support/macros/sanitizer.h"
 #include "src/compiler/__stack_chk_fail.h"
 #include "src/string/memset.h"
 #include "test/UnitTest/Test.h"
@@ -15,13 +16,15 @@ 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);
-}
-
+// 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_HAVE_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));
 }
+#endif // LIBC_HAVE_ADDRESS_SANITIZER


        


More information about the libc-commits mailing list