[compiler-rt] r195958 - [sanitizer] disable shmctl intercetor in 32-bit -- it is rotten (bug filed)
Kostya Serebryany
kcc at google.com
Fri Nov 29 06:09:13 PST 2013
Author: kcc
Date: Fri Nov 29 08:09:13 2013
New Revision: 195958
URL: http://llvm.org/viewvc/llvm-project?rev=195958&view=rev
Log:
[sanitizer] disable shmctl intercetor in 32-bit -- it is rotten (bug filed)
Added:
compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/shmctl.cc
Modified:
compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h
Added: compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/shmctl.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/shmctl.cc?rev=195958&view=auto
==============================================================================
--- compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/shmctl.cc (added)
+++ compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/shmctl.cc Fri Nov 29 08:09:13 2013
@@ -0,0 +1,17 @@
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1
+// Regression test for
+// https://code.google.com/p/address-sanitizer/issues/detail?id=250
+#include <stdio.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <assert.h>
+
+int main() {
+ int id = shmget(IPC_PRIVATE, 4096, 0644 | IPC_CREAT);
+ assert(id > -1);
+ struct shmid_ds ds;
+ int res = shmctl(id, IPC_STAT, &ds);
+ assert(res > -1);
+ printf("shm_segsz: %zd\n", ds.shm_segsz);
+ assert(ds.shm_segsz == 4096);
+}
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h?rev=195958&r1=195957&r2=195958&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h Fri Nov 29 08:09:13 2013
@@ -144,7 +144,8 @@
# define SANITIZER_INTERCEPT_INITGROUPS SI_NOT_WINDOWS
# define SANITIZER_INTERCEPT_ETHER SI_NOT_WINDOWS
# define SANITIZER_INTERCEPT_ETHER_R SI_LINUX_NOT_ANDROID
-# define SANITIZER_INTERCEPT_SHMCTL SI_LINUX_NOT_ANDROID
+# define SANITIZER_INTERCEPT_SHMCTL \
+ (SI_LINUX_NOT_ANDROID && SANITIZER_WORDSIZE == 64)
# define SANITIZER_INTERCEPT_RANDOM_R SI_LINUX_NOT_ANDROID
# define SANITIZER_INTERCEPT_PTHREAD_ATTR_GET SI_NOT_WINDOWS
# define SANITIZER_INTERCEPT_PTHREAD_ATTR_GETINHERITSCHED \
More information about the llvm-commits
mailing list