[compiler-rt] 147a4c7 - [rtsan] Fix issue where close test would lead to crash (#144017)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 15 06:54:15 PDT 2025
Author: Chris Apple
Date: 2025-06-15T06:54:11-07:00
New Revision: 147a4c7743c44af3537bae69dcf513153b03b00e
URL: https://github.com/llvm/llvm-project/commit/147a4c7743c44af3537bae69dcf513153b03b00e
DIFF: https://github.com/llvm/llvm-project/commit/147a4c7743c44af3537bae69dcf513153b03b00e.diff
LOG: [rtsan] Fix issue where close test would lead to crash (#144017)
Added:
Modified:
compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
Removed:
################################################################################
diff --git a/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp b/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
index c2d07400593d5..2ee35555c24de 100644
--- a/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
+++ b/compiler-rt/lib/rtsan/tests/rtsan_test_interceptors_posix.cpp
@@ -449,12 +449,6 @@ TEST_F(RtsanFileTest, FcntlSetFdDiesWhenRealtime) {
close(fd);
}
-TEST(TestRtsanInterceptors, CloseDiesWhenRealtime) {
- auto Func = []() { close(0); };
- ExpectRealtimeDeath(Func, "close");
- ExpectNonRealtimeSurvival(Func);
-}
-
TEST(TestRtsanInterceptors, ChdirDiesWhenRealtime) {
auto Func = []() { chdir("."); };
ExpectRealtimeDeath(Func, "chdir");
@@ -606,8 +600,10 @@ class RtsanOpenedFileTest : public RtsanFileTest {
}
void TearDown() override {
- if (file != nullptr)
+ const bool is_open = fcntl(fd, F_GETFD) != -1;
+ if (is_open && file != nullptr)
fclose(file);
+
RtsanFileTest::TearDown();
}
@@ -620,6 +616,16 @@ class RtsanOpenedFileTest : public RtsanFileTest {
int fd = -1;
};
+TEST_F(RtsanOpenedFileTest, CloseDiesWhenRealtime) {
+ auto Func = [this]() { close(GetOpenFd()); };
+ ExpectRealtimeDeath(Func, "close");
+}
+
+TEST_F(RtsanOpenedFileTest, CloseSurvivesWhenNotRealtime) {
+ auto Func = [this]() { close(GetOpenFd()); };
+ ExpectNonRealtimeSurvival(Func);
+}
+
#if SANITIZER_INTERCEPT_FSEEK
TEST_F(RtsanOpenedFileTest, FgetposDieWhenRealtime) {
auto Func = [this]() {
More information about the llvm-commits
mailing list