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.
Changes in version 12:
realloc
instead of triggering a crash by trying to lock a field in the internal allocator state that's not a lockA full list of changes from the previous release (version 11) is available through the Git commit log between the releases.
See the README for this release for an overview of the project and many details about the design goals and implementation. versions These integer tags are the standalone releases, while date style tags such as 2023091800 and 2023091800-felix are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.
Full list of changes from the previous release (version 10). Notable changes:
See the README for this release for an overview of the project and many details about the design goals and implementation.
These integer numbered tags are the standalone releases, while the SQ1A.211205.008.2021122018
style tags are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.
Full list of changes from the previous release (version 9). Notable changes:
default
for an aggressive security-focused configuration and light
for a more balanced configuration disabling a subset of the optional security features for better performance (comparable to glibc malloc without the thread cache) and much lower memory usage while still providing most of the security properties (details in README)See the README for this release for an overview of the project and many details about the design goals and implementation.
These integer numbered tags are the standalone releases, while the SQ1A.211205.008.2021122018
style tags are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.
Full list of changes from the previous release (version 8).
See the README for this release for an overview of the project and many details about the design goals and implementation.
These integer numbered tags are the standalone releases, while the SQ1A.211205.008.2021122018
style tags are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.
Full list of changes from the previous release (version 7).
See the README for this release for an overview of the project and many details about the design goals and implementation.
These integer numbered tags are the standalone releases, while the RQ1A.210105.003.2021.01.05.03
style tags are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.
Full list of changes from the previous release (version 6).
See the README for this release for an overview of the project and many details about the design goals and implementation.
These integer numbered tags are the standalone releases, while the RQ1A.210105.003.2021.01.05.03
style tags are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.
Full list of changes from the previous release (version 5).
See the README for this release for an overview of the project and many details about the design goals and implementation.
These integer numbered tags are the standalone releases, while the RQ1A.210105.003.2021.01.05.03
style tags are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.
Full list of changes from the previous release (version 4).
See the README for this release for an overview of the project and many details about the design goals and implementation.
These integer numbered tags are the standalone releases, while the RQ1A.210105.003.2021.01.05.03
style tags are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.
Full list of changes from the previous release (version 3).
See the README for this release for an overview of the project and many details about the design goals and implementation.
These integer numbered tags are the standalone releases, while the RP1A.201105.002.2020.11.07.00
style tags are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.
Full list of changes from the previous release (version 2).
See the README for this release for an overview of the project and many details about the design goals and implementation.
These integer numbered tags are the standalone releases, while the QQ3A.200805.001.2020.09.11.14
style tags are part of GrapheneOS releases and may contain GrapheneOS-specific changes such as workarounds for latent memory corruption bugs encountered in the wild while waiting for an upstream or downstream fix.