mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-28 13:51:09 +00:00
Do not map read-only data memory sections with EXECUTE flags.
The code in SectionMemoryManager.cpp unnecessarily maps read-only data sections with the READ+EXECUTE flags. This is undesirable from a security stand-point. Moreover, on the Fuchsia platform, which is now very strict about mapping pages with the EXECUTE permission, this simply fails, because the section's pages were initially allocated with only the READ+WRITE flags. A more detailed description of the issue can be found in this public SwiftShader bug: https://issuetracker.google.com/issues/154586551 This patch just restrict the mapping to the READ flag for ROData sections. Code sections are still mapped with READ+EXECUTE as expected. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D78574
This commit is contained in:
parent
8489fbb9a7
commit
221f10ac36
@ -161,8 +161,7 @@ bool SectionMemoryManager::finalizeMemory(std::string *ErrMsg) {
|
||||
}
|
||||
|
||||
// Make read-only data memory read-only.
|
||||
ec = applyMemoryGroupPermissions(RODataMem,
|
||||
sys::Memory::MF_READ | sys::Memory::MF_EXEC);
|
||||
ec = applyMemoryGroupPermissions(RODataMem, sys::Memory::MF_READ);
|
||||
if (ec) {
|
||||
if (ErrMsg) {
|
||||
*ErrMsg = ec.message();
|
||||
|
Loading…
Reference in New Issue
Block a user