[compiler-rt] r257223 - [tsan] don't crash on closedir(0)
Kostya Serebryany via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 8 14:48:20 PST 2016
Author: kcc
Date: Fri Jan 8 16:48:19 2016
New Revision: 257223
URL: http://llvm.org/viewvc/llvm-project?rev=257223&view=rev
Log:
[tsan] don't crash on closedir(0)
Added:
compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/closedir.c
Modified:
compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc
Modified: compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc?rev=257223&r1=257222&r2=257223&view=diff
==============================================================================
--- compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc (original)
+++ compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc Fri Jan 8 16:48:19 2016
@@ -1892,8 +1892,10 @@ TSAN_INTERCEPTOR(int, rmdir, char *path)
TSAN_INTERCEPTOR(int, closedir, void *dirp) {
SCOPED_TSAN_INTERCEPTOR(closedir, dirp);
- int fd = dirfd(dirp);
- FdClose(thr, pc, fd);
+ if (dirp) {
+ int fd = dirfd(dirp);
+ FdClose(thr, pc, fd);
+ }
return REAL(closedir)(dirp);
}
Added: compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/closedir.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/closedir.c?rev=257223&view=auto
==============================================================================
--- compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/closedir.c (added)
+++ compiler-rt/trunk/test/sanitizer_common/TestCases/Linux/closedir.c Fri Jan 8 16:48:19 2016
@@ -0,0 +1,5 @@
+// Check that closedir(NULL) is ok.
+// RUN: %clang -O2 %s -o %t && %run %t
+#include <sys/types.h>
+#include <dirent.h>
+int main() { closedir(0); }
More information about the llvm-commits
mailing list