• 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
..
platform Loading commit data...
utils Loading commit data...
address-region-unittest.cc Loading commit data...
atomic-utils-unittest.cc Loading commit data...
atomicops-unittest.cc Loading commit data...
bignum-dtoa-unittest.cc Loading commit data...
bignum-unittest.cc Loading commit data...
bits-unittest.cc Loading commit data...
cpu-unittest.cc Loading commit data...
division-by-constant-unittest.cc Loading commit data...
double-unittest.cc Loading commit data...
dtoa-unittest.cc Loading commit data...
fast-dtoa-unittest.cc Loading commit data...
fixed-dtoa-unittest.cc Loading commit data...
flags-unittest.cc Loading commit data...
functional-unittest.cc Loading commit data...
hashmap-unittest.cc Loading commit data...
ieee754-unittest.cc Loading commit data...
iterator-unittest.cc Loading commit data...
logging-unittest.cc Loading commit data...
macros-unittest.cc Loading commit data...
ostreams-unittest.cc Loading commit data...
region-allocator-unittest.cc Loading commit data...
string-format-unittest.cc Loading commit data...
sys-info-unittest.cc Loading commit data...
template-utils-unittest.cc Loading commit data...
threaded-list-unittest.cc Loading commit data...
vector-unittest.cc Loading commit data...
virtual-address-space-unittest.cc Loading commit data...
vlq-base64-unittest.cc Loading commit data...
vlq-unittest.cc Loading commit data...