diff options
author | Nico Weber <thakis@chromium.org> | 2021-01-13 08:30:11 -0500 |
---|---|---|
committer | Nico Weber <thakis@chromium.org> | 2021-01-13 08:30:11 -0500 |
commit | 704831fe1f1f02e41ab7440a6f6c2c390ec183b1 (patch) | |
tree | e6f6eaa61ec27d32f4cd75f8532b34b0468dda62 | |
parent | f8cece18630575dccd62ba6a12f21acf5fd38c26 (diff) | |
download | llvm-704831fe1f1f02e41ab7440a6f6c2c390ec183b1.tar.gz |
Revert "Hwasan InitPrctl check for error using internal_iserror"
This reverts commit 1854594b80b444dc21b830b51e53e05d38fc7d60.
See https://reviews.llvm.org/D94425#2495621
-rw-r--r-- | compiler-rt/lib/hwasan/hwasan_linux.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/compiler-rt/lib/hwasan/hwasan_linux.cpp b/compiler-rt/lib/hwasan/hwasan_linux.cpp index 793fd2fab6bf..e99926d355cf 100644 --- a/compiler-rt/lib/hwasan/hwasan_linux.cpp +++ b/compiler-rt/lib/hwasan/hwasan_linux.cpp @@ -119,10 +119,8 @@ void InitPrctl() { #define PR_GET_TAGGED_ADDR_CTRL 56 #define PR_TAGGED_ADDR_ENABLE (1UL << 0) // Check we're running on a kernel that can use the tagged address ABI. - int local_errno = 0; - if (internal_iserror(internal_prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0), - &local_errno) && - local_errno == EINVAL) { + if (internal_prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0) == (uptr)-1 && + errno == EINVAL) { #if SANITIZER_ANDROID // Some older Android kernels have the tagged pointer ABI on // unconditionally, and hence don't have the tagged-addr prctl while still @@ -139,8 +137,8 @@ void InitPrctl() { } // Turn on the tagged address ABI. - if (internal_iserror(internal_prctl(PR_SET_TAGGED_ADDR_CTRL, - PR_TAGGED_ADDR_ENABLE, 0, 0, 0)) || + if (internal_prctl(PR_SET_TAGGED_ADDR_CTRL, PR_TAGGED_ADDR_ENABLE, 0, 0, 0) == + (uptr)-1 || !internal_prctl(PR_GET_TAGGED_ADDR_CTRL, 0, 0, 0, 0)) { Printf( "FATAL: HWAddressSanitizer failed to enable tagged address syscall " |