Conversation

The approach in my planned hardened releases of the Android Open Source Project will be using github.com/AndroidHardeni for 64-bit processes and a port of OpenBSD malloc with small extensions for the remaining 32-bit processes. Eventually, those 32-bit processes will all be gone.
1
14
It still uses many of the same fundamental design choices as OpenBSD malloc. I wanted a much different approach to size classes along with other invasive changes like aggressively using the large address space on 64-bit for isolated regions. It was too much to keep extending it.
1
1
It was much easier starting fresh than trying to make increasingly invasive changes to a moving target with slightly different goals, focus and target architectures/platforms. Not needing to worry about future rebases and upstreaming is liberating, even for such a small project.
Replying to
github.com/AndroidHardeni aims to provide a great general purpose hardened allocator for x86_64 and arm64 *nix platforms. It's a project all about making hard compromises between competing goals and applying the right set of ideas from existing allocators.
Quote Tweet
Currently working on a new hardened malloc implementation with better performance, scalability, memory usage and security properties. It borrows ideas from OpenBSD malloc including my extensions to it, PartitionAlloc, jemalloc and my previous performance-oriented malloc design.
Show this thread
1
2
The compromises are partly about balancing performance, memory usage, parallelism and security. Choosing to support only 64-bit platforms to have dedicated reserved memory regions makes a big difference though. It has a major impact on implementing metadata lookup and arenas.
2