• Clemens Backes's avatar
    [base] Add new API to protect data memory · 9d36b2dd
    Clemens Backes authored
    This adds a new {base::OS::SetDataReadOnly} method, which is similar to
    {SetPermissions(kRead)}, but using another system call on Windows such
    that it works on pages in the data segment.
    {VirtualAlloc} will fail if called on a page of the data section,
    whereas {VirtualProtect} succeeds. For the general {SetPermissions}
    API we still want to use {VirtualAlloc} though, as it also changes the "committed" state of the pages.
    
    Note that we do not add a platform API for this, as the memory was
    never allocated through the platform. We just directly protect it in
    V8.
    
    R=mlippautz@chromium.org
    
    Bug: v8:12887
    Change-Id: If83bf6e5c500cc5cf08c76d04dfac5e2b4d35a2d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3820482Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82349}
    9d36b2dd
Name
Last commit
Last update
..
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
condition-variable.cc Loading commit data...
condition-variable.h Loading commit data...
elapsed-timer.h Loading commit data...
memory-protection-key.cc Loading commit data...
memory-protection-key.h Loading commit data...
mutex.cc Loading commit data...
mutex.h Loading commit data...
platform-aix.cc Loading commit data...
platform-cygwin.cc Loading commit data...
platform-darwin.cc Loading commit data...
platform-freebsd.cc Loading commit data...
platform-fuchsia.cc Loading commit data...
platform-linux.cc Loading commit data...
platform-linux.h Loading commit data...
platform-macos.cc Loading commit data...
platform-openbsd.cc Loading commit data...
platform-posix-time.cc Loading commit data...
platform-posix-time.h Loading commit data...
platform-posix.cc Loading commit data...
platform-posix.h Loading commit data...
platform-qnx.cc Loading commit data...
platform-solaris.cc Loading commit data...
platform-starboard.cc Loading commit data...
platform-win32.cc Loading commit data...
platform.h Loading commit data...
semaphore.cc Loading commit data...
semaphore.h Loading commit data...
time.cc Loading commit data...
time.h Loading commit data...
wrappers.h Loading commit data...
yield-processor.h Loading commit data...