[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