From c2f3d074e34eecce2bb7dc2cf11ef2d5d65c019d Mon Sep 17 00:00:00 2001 From: Feoramund <161657516+Feoramund@users.noreply.github.com> Date: Thu, 19 Jun 2025 19:36:14 -0400 Subject: [PATCH] mem: Forbid construction of `Buddy_Allocator` with insufficient space This takes into account eventual alignment. --- core/mem/allocators.odin | 1 + 1 file changed, 1 insertion(+) diff --git a/core/mem/allocators.odin b/core/mem/allocators.odin index e3b96a8f7..a5a7d9951 100644 --- a/core/mem/allocators.odin +++ b/core/mem/allocators.odin @@ -2239,6 +2239,7 @@ buddy_allocator_init :: proc(b: ^Buddy_Allocator, data: []byte, alignment: uint, b.head.is_free = true b.tail = buddy_block_next(b.head) b.alignment = alignment + assert(uint(len(data)) >= 2 * buddy_block_size_required(b, 1), "The size of the backing buffer must be large enough to hold at least two 1-byte allocations given the alignment requirements, otherwise it cannot split.", loc) // sanitizer.address_poison(data) }