[compiler-rt] [compiler-rt][rtsan] adding setlinebuf/setbuffer interception. (PR #122018)

Florian Mayer via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 8 04:56:37 PST 2025


================
@@ -421,14 +421,36 @@ TEST_F(RtsanFileTest, SetvbufDieWhenRealtime) {
   FILE *f = fopen(GetTemporaryFilePath(), "w");
   EXPECT_THAT(f, Ne(nullptr));
 
-  auto Func = [&f, &buffer, &size]() {
-    int r = setvbuf(f, buffer, _IOFBF, size);
+  auto Func = [f, buffer, size]() {
+    int r = setvbuf(f, (char *)buffer, _IOFBF, size);
     EXPECT_THAT(r, Eq(0));
   };
 
   ExpectRealtimeDeath(Func, "setvbuf");
   ExpectNonRealtimeSurvival(Func);
 }
+
+TEST_F(RtsanFileTest, SetlinebufDieWhenRealtime) {
+  FILE *f = fopen(GetTemporaryFilePath(), "w");
+  EXPECT_THAT(f, Ne(nullptr));
+
+  auto Func = [f]() { setlinebuf(f); };
+
+  ExpectRealtimeDeath(Func, "setlinebuf");
+  ExpectNonRealtimeSurvival(Func);
+}
+
+TEST_F(RtsanFileTest, SetbufferDieWhenRealtime) {
+  char buffer[1024];
+  size_t size = sizeof(buffer);
+  FILE *f = fopen(GetTemporaryFilePath(), "w");
+  EXPECT_THAT(f, Ne(nullptr));
+
+  auto Func = [f, buffer, size]() { setbuffer(f, (char *)buffer, size); };
----------------
fmayer wrote:

the cast shouldn't be needed

https://github.com/llvm/llvm-project/pull/122018


More information about the llvm-commits mailing list