diff options
author | Evgenii Stepanov <eugenis@google.com> | 2017-01-31 17:10:03 -0800 |
---|---|---|
committer | Evgenii Stepanov <eugenis@google.com> | 2017-01-31 17:10:03 -0800 |
commit | beb3eb1790dffc6e2f57a670aec89364944f66c4 (patch) | |
tree | 833fc173575d6617e7051fbd126e98fde1c80700 /libdl | |
parent | dd76f744e7a8431eb105f1e94fd1e407690a0b89 (diff) | |
download | bionic-beb3eb1790dffc6e2f57a670aec89364944f66c4.tar.gz |
Revert "Fix CFI initialization crash on x86."
Breaks aosp-master/sdk.
This reverts commit 4ccd4317f9301ec9b32aa0d3317a0439b994d7bf.
Diffstat (limited to 'libdl')
-rw-r--r-- | libdl/libdl_cfi.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/libdl/libdl_cfi.cpp b/libdl/libdl_cfi.cpp index 8458564a8..362b093fa 100644 --- a/libdl/libdl_cfi.cpp +++ b/libdl/libdl_cfi.cpp @@ -29,12 +29,10 @@ static struct { char padding[PAGE_SIZE - sizeof(v)]; } shadow_base_storage alignas(PAGE_SIZE); -// __cfi_init is called by the loader as soon as the shadow is mapped. This may happen very early -// during startup, before libdl.so global constructors, and, on i386, even before __libc_sysinfo is -// initialized. This function should not do any system calls. extern "C" uintptr_t* __cfi_init(uintptr_t shadow_base) { shadow_base_storage.v = shadow_base; static_assert(sizeof(shadow_base_storage) == PAGE_SIZE, ""); + mprotect(&shadow_base_storage, PAGE_SIZE, PROT_READ); return &shadow_base_storage.v; } |