[compiler-rt] r341875 - [hwasan] Re-enable print-memory-usage-android test.

Evgeniy Stepanov via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 10 15:22:02 PDT 2018


Author: eugenis
Date: Mon Sep 10 15:22:02 2018
New Revision: 341875

URL: http://llvm.org/viewvc/llvm-project?rev=341875&view=rev
Log:
[hwasan] Re-enable print-memory-usage-android test.

The problem was not in a non-rooted device, but in tagged local
variable address passed to a system call, see comments in the code.

Modified:
    compiler-rt/trunk/test/hwasan/TestCases/print-memory-usage-android.c

Modified: compiler-rt/trunk/test/hwasan/TestCases/print-memory-usage-android.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/hwasan/TestCases/print-memory-usage-android.c?rev=341875&r1=341874&r2=341875&view=diff
==============================================================================
--- compiler-rt/trunk/test/hwasan/TestCases/print-memory-usage-android.c (original)
+++ compiler-rt/trunk/test/hwasan/TestCases/print-memory-usage-android.c Mon Sep 10 15:22:02 2018
@@ -2,14 +2,17 @@
 // RUN: %clang_hwasan %s -o %t && %env_hwasan_opts=export_memory_stats=1 %run %t 2>&1 | FileCheck %s
 // REQUIRES: android
 
-// This test requires a rooted device.
-// UNSUPPORTED: android
-
 #include <sys/types.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdio.h>
 
+// The function needs to be unsanitized in order for &cmd to be untagged. This
+// address is passed to system() and then to execve() syscall. The tests need to
+// run on unpatched linux kernel, which at this time does not accept tagged
+// pointers in system call arguments (but there is hope: see
+// https://lore.kernel.org/patchwork/cover/979328).
+__attribute__((no_sanitize("hwaddress")))
 int main() {
   char cmd[1024];
   snprintf(cmd, sizeof(cmd), "cat /proc/%d/maps", getpid());




More information about the llvm-commits mailing list