{"repo":"GrapheneOS/hardened_malloc","free":true,"listed":false,"github":"https://github.com/GrapheneOS/hardened_malloc","clone":"git clone https://github.com/GrapheneOS/hardened_malloc.git","description":"Hardened allocator designed for modern systems. It has integration into Android's Bionic libc and can be used externally with musl and glibc as a dynamic library for use on other Linux-based platforms. It will gain more portability/integration over time.","language":"C","stars":1964,"topics":["malloc","security","memory-allocation","malloc-library","memory-allocator","memory","hardening","slab-allocator","quarantine","grapheneos"],"license":"MIT","category":"security-tools","readme_excerpt":"hardened malloc Introduction Dependencies Testing Individual Applications Automated Test Framework Compatibility OS integration Android-based operating systems Traditional Linux-based operating systems Configuration Core design Security properties Randomness Size classes Scalability Small (slab) allocations Thread caching (or lack thereof) Large allocations Memory tagging API extensions Stats System calls Introduction This is a security-focused general purpose memory allocator providing the malloc API along with various extensions. It provides substantial hardening against heap corruption vulnerabilities. The security-focused design also leads to much less metadata overhead and memory waste from fragmentation than a more traditional allocator design. It aims to provide decent overall performance with a focus on long-term performance and memory usage rather than allocator micro-benchmarks. It offers scalability via a configurable number of entirely independent arenas, with the internal locking within arenas further divided up per size class. This project currently supports Bionic (Android), musl and glibc. It may support other non-Linux operating systems in the future. For Android, there's custom integration and other hardening features which is also planned for musl in the future. The glibc support will be limited to replacing the malloc implementation because musl is a much more robust and cleaner base to build on and can cover the same use cases. This allocator is intended ","default_branch":null,"files":null,"tree":[],"storefront":"/r/GrapheneOS","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/GrapheneOS/hardened_malloc/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}