[webkit-changes] [WebKit/WebKit] 3d6a73: [JSC] Add optional mprotect mode for executable me...
David Degazio
noreply at github.com
Wed May 29 12:27:45 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3d6a7300a281e21aaf7a8b91ea07252ccc4fa000
https://github.com/WebKit/WebKit/commit/3d6a7300a281e21aaf7a8b91ea07252ccc4fa000
Author: David Degazio <d_degazio at apple.com>
Date: 2024-05-29 (Wed, 29 May 2024)
Changed paths:
M Source/JavaScriptCore/assembler/ARM64Assembler.h
M Source/JavaScriptCore/assembler/ARMv7Assembler.h
M Source/JavaScriptCore/assembler/LinkBuffer.cpp
M Source/JavaScriptCore/assembler/RISCV64Assembler.h
M Source/JavaScriptCore/assembler/X86Assembler.h
M Source/JavaScriptCore/jit/ExecutableAllocator.cpp
M Source/JavaScriptCore/jit/ExecutableAllocator.h
M Source/WTF/wtf/PlatformEnable.h
Log Message:
-----------
[JSC] Add optional mprotect mode for executable memory on Intel
https://bugs.webkit.org/show_bug.cgi?id=274805
rdar://128901530
Reviewed by Mark Lam.
Adds new build-time flag ENABLE_MPROTECT_RWX_TO_RX that toggles protecting
executable memory from modification using mprotect() calls. It's disabled
by default due to high performance cost, but should still be useful as a
debugging mode to flush out possible sources of executable memory corruption.
* Source/JavaScriptCore/assembler/ARM64Assembler.h:
* Source/JavaScriptCore/assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::maxJumpReplacementSize):
* Source/JavaScriptCore/assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::performFinalization):
* Source/JavaScriptCore/assembler/RISCV64Assembler.h:
(JSC::RISCV64Assembler::maxJumpReplacementSize):
* Source/JavaScriptCore/assembler/X86Assembler.h:
(JSC::X86Assembler::replaceWithHlt):
(JSC::X86Assembler::replaceWithJump):
(JSC::X86Assembler::replaceWithNops):
(JSC::X86Assembler::maxJumpReplacementSize):
(JSC::X86Assembler::revertJumpTo_movq_i64r):
(JSC::X86Assembler::revertJumpTo_movl_i32r):
(JSC::X86Assembler::revertJumpTo_cmpl_ir_force32):
(JSC::X86Assembler::revertJumpTo_cmpl_im_force32):
(JSC::X86Assembler::fillNops):
(JSC::X86Assembler::setPointer):
(JSC::X86Assembler::setInt32):
(JSC::X86Assembler::setInt8):
* Source/JavaScriptCore/jit/ExecutableAllocator.cpp:
(JSC::ExecutableAllocator::startWriting):
(JSC::ExecutableAllocator::finishWriting):
(JSC::performJITMemcpyWithMProtect):
* Source/JavaScriptCore/jit/ExecutableAllocator.h:
(JSC::performJITMemcpy):
* Source/WTF/wtf/PlatformEnable.h:
Canonical link: https://commits.webkit.org/279455@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list