[compiler-rt] r303132 - [asan] make asan under sandboxes more robust

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Mon May 15 16:54:56 PDT 2017


The test will fail if the kernel does not allow user namespaces, won't it?

Peter

On Mon, May 15, 2017 at 4:37 PM, Kostya Serebryany via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: kcc
> Date: Mon May 15 18:37:54 2017
> New Revision: 303132
>
> URL: http://llvm.org/viewvc/llvm-project?rev=303132&view=rev
> Log:
> [asan] make asan under sandboxes more robust
>
> Added:
>     compiler-rt/trunk/test/asan/TestCases/Linux/sanbox_read_
> proc_self_maps_test.cc
> Modified:
>     compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps_linux.cc
>
> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_
> procmaps_linux.cc
> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/
> sanitizer_common/sanitizer_procmaps_linux.cc?rev=303132&
> r1=303131&r2=303132&view=diff
> ============================================================
> ==================
> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps_linux.cc
> (original)
> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_procmaps_linux.cc
> Mon May 15 18:37:54 2017
> @@ -18,8 +18,8 @@
>  namespace __sanitizer {
>
>  void ReadProcMaps(ProcSelfMapsBuff *proc_maps) {
> -  CHECK(ReadFileToBuffer("/proc/self/maps", &proc_maps->data,
> -                         &proc_maps->mmaped_size, &proc_maps->len));
> +  ReadFileToBuffer("/proc/self/maps", &proc_maps->data,
> &proc_maps->mmaped_size,
> +                   &proc_maps->len);
>  }
>
>  static bool IsOneOf(char c, char c1, char c2) {
>
> Added: compiler-rt/trunk/test/asan/TestCases/Linux/sanbox_read_
> proc_self_maps_test.cc
> URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/
> test/asan/TestCases/Linux/sanbox_read_proc_self_maps_
> test.cc?rev=303132&view=auto
> ============================================================
> ==================
> --- compiler-rt/trunk/test/asan/TestCases/Linux/sanbox_read_proc_self_maps_test.cc
> (added)
> +++ compiler-rt/trunk/test/asan/TestCases/Linux/sanbox_read_proc_self_maps_test.cc
> Mon May 15 18:37:54 2017
> @@ -0,0 +1,30 @@
> +// REQUIRES: x86_64-target-arch
> +// RUN: %clangxx_asan  %s -o %t
> +// RUN: not %run %t 2>&1 | FileCheck %s
> +#include <sanitizer/common_interface_defs.h>
> +#include <sched.h>
> +#include <unistd.h>
> +#include <stdio.h>
> +#include <stdlib.h>
> +
> +int main() {
> +  __sanitizer_sandbox_arguments args = {0};
> +  // should cache /proc/self/maps
> +  __sanitizer_sandbox_on_notify(&args);
> +
> +  if (unshare(CLONE_NEWUSER)) {
> +    printf("unshare failed\n");
> +    abort();
> +  }
> +
> +  // remove access to /proc/self/maps
> +  if (chroot("/tmp")) {
> +    printf("chroot failed\n");
> +    abort();
> +  }
> +
> +  *(volatile int*)0x42 = 0;
> +// CHECK: AddressSanitizer: SEGV on unknown address 0x000000000042
> +// CHECK-NOT: AddressSanitizer CHECK failed
> +// CHECK: SUMMARY: AddressSanitizer: SEGV
> +}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>



-- 
-- 
Peter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170515/8dc6ddce/attachment.html>


More information about the llvm-commits mailing list