Add GrapheneOS hardened_malloc documentation.

This commit is contained in:
inference 2023-06-12 17:08:21 +01:00
parent ce6c156d58
commit a2288ceb6d
Signed by: inference
SSH Key Fingerprint: SHA256:9Pl0nZ2UJacgm+IeEtLSZ4FOESgP1eKCtRflfPfdX9M

View File

@ -0,0 +1,41 @@
= GrapheneOS hardened_malloc
Version: 0.0.0.0
This documentation contains the complete set of commands to use
https://github.com/GrapheneOS/hardened_malloc[GrapheneOS' hardened_malloc] memory allocator as the
system's default memory allocator. These instructions apply to both musl and glibc C libraries on
Unix-based and Unix-like systems.
== Increase Permitted Amount of Memory Pages
Add `vm.max_map_count = 1048576` to `/etc/sysctl.conf` to accomodate hardened_malloc's large amount
of guard pages
== Clone hardened_malloc Source Code
`git clone https://github.com/GrapheneOS/hardened_malloc.git`
== Enter hardened_malloc Local Git Repository
`cd hardened_malloc/`
== Compile hardened_malloc
`make <arguments>`
`CONFIG_N_ARENA=n` can be adjusted to increase parallel performance at the expense of memory usage,
or decrease memory usage at the expense of parallel performance, where `n` is an integer. For
low-memory systems, `VARIANT=light` can be used to compile the light variant of hardened_malloc,
which sacrifices some security for much less memory usage.
== Copy Compiled hardened_malloc Library
`cp out/libhardened_malloc.so <target_path>`
== Set System to Preload hardened_malloc on Boot
musl-based systems: Add `export LD_PRELOAD=<hardened_malloc_path>` to `/etc/environment` +
glibc-based systems: Add `<hardened_malloc_path>` to `/etc/ld.so.preload`