• Clemens Backes's avatar
    Reland "[base] Add new API to protect data memory" · e44c745d
    Clemens Backes authored
    This is a reland of commit 9d36b2dd.
    The test case is fixed to actually protect a part of the data section
    instead of the stack (which was unintended and could lead to segfaults).
    
    Original change's description:
    > [base] Add new API to protect data memory
    >
    > 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/+/3820482
    > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    > Commit-Queue: Clemens Backes <clemensb@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#82349}
    
    Bug: v8:12887
    Change-Id: Ib7c24b43b53d568dafb4a56cf8db7479c784e8d8
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3825889Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#82398}
    e44c745d
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...