Skip to content

Commit e2e6e70

Browse files
committed
merge from dev, bump version to v3.3.1
2 parents 586157d + c53776f commit e2e6e70

4 files changed

Lines changed: 15 additions & 9 deletions

File tree

cmake/mimalloc-config-version.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
set(mi_version_major 3)
22
set(mi_version_minor 3)
3-
set(mi_version_patch 0)
3+
set(mi_version_patch 1)
44
set(mi_version ${mi_version_major}.${mi_version_minor})
55

66
set(PACKAGE_VERSION ${mi_version})

contrib/vcpkg/portfile.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ vcpkg_from_github(
33
REPO microsoft/mimalloc
44
HEAD_REF master
55

6-
# The "REF" can be a commit hash, branch name (dev3), or a version (v3.3.0).
6+
# The "REF" can be a commit hash, branch name (dev3), or a version (v3.3.1).
77
REF "v${VERSION}"
88

99
# The sha512 is the hash of the tar.gz bundle.
1010
# (To get the sha512, run `vcpkg install "mimalloc[override]" --overlay-ports=<dir of this file>` and copy the sha from the error message.)
11-
SHA512 5830ceb1bf0d02f50fe586caaad87624ba8eba1bb66e68e8201894221cf6f51854f5a9667fc98358c3b430dae6f9bf529bfcb74d42debe6f40a487265053371c
11+
# (and maybe `vcpkg remove mimalloc` first to remove any previous install)
12+
SHA512 601bdf622d0bc7521edf0cc73d1caec9d976bcd1faa689ff48cc18a9a6a3b2294b571fc71d3266b38907bc5aad10a41d92d03d2cdde139a30b08357ee7bc25c5
1213
)
1314

1415
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS

include/mimalloc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ terms of the MIT license. A copy of the license can be found in the file
88
#ifndef MIMALLOC_H
99
#define MIMALLOC_H
1010

11-
#define MI_MALLOC_VERSION 30300 // major + 2 digits minor + 2 digits patch
11+
#define MI_MALLOC_VERSION 30301 // major + 2 digits minor + 2 digits patch
1212

1313
// ------------------------------------------------------
1414
// Compiler specific attributes

readme.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ is a general purpose allocator with excellent [performance](#performance) charac
1515
Initially developed by Daan Leijen for the runtime systems of the
1616
[Koka](https://koka-lang.github.io) and [Lean](https://github.com/leanprover/lean) languages.
1717

18-
Latest release : `v3.3.0` (2026-04-15) recommended.
19-
Latest v2 release: `v2.3.0` (2026-04-15) stable.
20-
Latest v1 release: `v1.9.8` (2026-04-15) legacy.
18+
Latest release : `v3.3.1` (2026-04-20) recommended.
19+
Latest v2 release: `v2.3.1` (2026-04-20) stable.
20+
Latest v1 release: `v1.9.9` (2026-04-20) legacy.
2121

2222
mimalloc is a drop-in replacement for `malloc` and can be used in other programs
2323
without code changes, for example, on dynamically linked ELF-based systems (Linux, BSD, etc.) you can use it as:
@@ -88,6 +88,9 @@ New development is mostly on v3, while v1 and v2 are maintained with security an
8888
- __v1__: legacy version: initial design of mimalloc (release tags: `v1.9.x`, development branch `dev`). Send PR's against this version if possible.
8989

9090
### Releases
91+
* 2026-04-20, `v1.9.9`, `v2.3.1`, `v3.3.1`: various bug and security fixes. Special thanks to
92+
@jinpzhanAMD, @res2k, and @GoldJohnKing for their help in improving Windows finalization, and
93+
@Zoxc for his help in finding various issues.
9194
* 2026-04-15, `v1.9.8`, `v2.3.0`, `v3.3.0`: initial support for github (binary) releases,
9295
fix visiting of full pages during collection (performance),
9396
fix THP alignment (performance), fix arm64 cross-compilation on Windows, enable guard pages in debug mode,
@@ -399,15 +402,17 @@ OS will copy the entire 1GiB huge page (or 2MiB large page) which can cause the
399402
_mimalloc_ can be build in secure mode by using the `-DMI_SECURE=ON` flags in `cmake`. This build enables various mitigations
400403
to make mimalloc more robust against exploits. In particular:
401404

402-
- All internal mimalloc pages are surrounded by guard pages and the heap metadata is behind a guard page as well (so a buffer overflow
403-
exploit cannot reach into the metadata).
405+
- All internal mimalloc page meta-data is surrounded by guard pages (so a buffer overflow exploit cannot reach into the metadata).
404406
- All free list pointers are
405407
[encoded](https://github.com/microsoft/mimalloc/blob/783e3377f79ee82af43a0793910a9f2d01ac7863/include/mimalloc-internal.h#L396)
406408
with per-page keys which is used both to prevent overwrites with a known pointer, as well as to detect heap corruption.
407409
- Double free's are detected (and ignored).
408410
- The free lists are initialized in a random order and allocation randomly chooses between extension and reuse within a page to
409411
mitigate against attacks that rely on a predicable allocation order. Similarly, the larger heap blocks allocated by mimalloc
410412
from the OS are also address randomized.
413+
- If enabling `-DMI_SECURE_FULL=ON` there will also be guard pages at the end of each (64KiB) mimalloc page (thus interleaving
414+
valid block data with inaccessible gaps). This setting is not recommended in general as it is more expensive and can lead to
415+
reaching the maximum VMA limit on Linux systems if the heap gets too large.
411416

412417
As always, evaluate with care as part of an overall security strategy as all of the above are mitigations but not guarantees.
413418

0 commit comments

Comments
 (0)