From: Evgeniy Stepanov Date: Mon, 10 Sep 2018 22:22:02 +0000 (+0000) Subject: [hwasan] Re-enable print-memory-usage-android test. X-Git-Tag: llvmorg-8.0.0-rc1~9053 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7e6c32aa4519b21098807ae4f0255ec0ac4ee0ef;p=platform%2Fupstream%2Fllvm.git [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. llvm-svn: 341875 --- diff --git a/compiler-rt/test/hwasan/TestCases/print-memory-usage-android.c b/compiler-rt/test/hwasan/TestCases/print-memory-usage-android.c index 12c7ddd..5a05792 100644 --- a/compiler-rt/test/hwasan/TestCases/print-memory-usage-android.c +++ b/compiler-rt/test/hwasan/TestCases/print-memory-usage-android.c @@ -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 #include #include #include +// 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());