Chrome Release Bot (LUCI) 4762b62e7d Publish DEPS for 106.0.5249.13 | před 1 rokem | |
---|---|---|
.. | ||
stack | před 1 rokem | |
OWNERS | před 1 rokem | |
README.md | před 1 rokem | |
logging.h | před 1 rokem | |
metadata_allocator.cc | před 1 rokem | |
metadata_allocator.h | před 1 rokem | |
pcscan.cc | před 1 rokem | |
pcscan.h | před 1 rokem | |
pcscan_internal.cc | před 1 rokem | |
pcscan_internal.h | před 1 rokem | |
pcscan_scheduling.cc | před 1 rokem | |
pcscan_scheduling.h | před 1 rokem | |
pcscan_scheduling_unittest.cc | před 1 rokem | |
pcscan_unittest.cc | před 1 rokem | |
raceful_worklist.h | před 1 rokem | |
scan_loop.h | před 1 rokem | |
scan_loop_unittest.cc | před 1 rokem | |
snapshot.cc | před 1 rokem | |
snapshot.h | před 1 rokem | |
starscan_fwd.h | před 1 rokem | |
state_bitmap.h | před 1 rokem | |
state_bitmap_unittest.cc | před 1 rokem | |
stats_collector.cc | před 1 rokem | |
stats_collector.h | před 1 rokem | |
stats_reporter.h | před 1 rokem | |
write_protector.cc | před 1 rokem | |
write_protector.h | před 1 rokem |
C++ and other languages that rely on explicit memory management using malloc()
and free()
are prone to memory corruptions and the resulting security issues.
The fundamental idea behind these heap scanning algorithms is to intercept an
underlying allocator and delay releasing of memory until the corresponding
memory block is provably unreachable from application code.
The basic ingredients for such algorithms are:
free()
call, it is
put into quarantine instead of being returned to the allocator. The object
is not actually freed by the underlying allocator and cannot be used for
future allocation requests until it is found that no pointers are pointing
to the given memory block.Heap scanning algorithms come in different flavors that offer different performance and security characteristics.
Probabilistic conservative scan (PCScan) (pcscan.{h,cc}
) is one particular
kind of heap scanning algorithm implemented on top of
PartitionAlloc with the following properties:
PCScan is currently considered experimental - please do not use it in
production code just yet. It can be enabled in the following configurations via
--enable-features
on builds that use PartitionAlloc as the
main allocator:
PartitionAllocPCScan
: All processes and all supporting partitions enable
PCScan.PartitionAllocPCScanBrowserOnly
: Enables PCScan in the browser process
for the default malloc partition.