HomePhabricator

[scudo][standalone] Introduce the combined allocator

Authored by cryptoad on Jun 17 2019, 8:23 AM.

Description

[scudo][standalone] Introduce the combined allocator

Summary:
The Combined allocator hold together all the other components, and
provides a memory allocator interface based on various template
parameters. This will be in turn used by "wrappers" that will provide
the standard C and C++ memory allocation functions, but can be
used as is as well.

This doesn't depart significantly from the current Scudo implementation
except for a few details:

  • Quarantine batches are now protected by a header a well;
  • an Allocator instance has its own TSD registry, as opposed to a static one for everybody;
  • a function to iterate over busy chunks has been added, for Android purposes;

This also adds the associated tests, and a few default configurations
for several platforms, that will likely be further tuned later on.

Reviewers: morehouse, hctim, eugenis, vitalybuka

Reviewed By: morehouse

Subscribers: srhines, mgorny, delcypher, jfb, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D63231

llvm-svn: 363569

Details

Committed
cryptoadJun 17 2019, 8:23 AM
Reviewer
morehouse
Differential Revision
D63231: [scudo][standalone] Introduce the combined allocator
Parents
rGb5ce4e5ea3e1: [clangd] Perform merge for main file symbols.
Branches
Unknown
Tags
Unknown