From 44ac5ded314e8a53985a8dcd8c06360544fda5d6 Mon Sep 17 00:00:00 2001
From: Christian Angel <chrisangel256@gmail.com>
Date: Thu, 19 Oct 2023 17:13:09 -0400
Subject: [PATCH] Fix segmentation faults on ODROID-XU3/XU4 running GNU/Linux,
 and probably other 32-bit ARM devices like older Raspberry Pis

---
 src/z_zone.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/z_zone.c b/src/z_zone.c
index dae7dff04..107556080 100644
--- a/src/z_zone.c
+++ b/src/z_zone.c
@@ -242,7 +242,7 @@ void *Z_Malloc2(size_t size, INT32 tag, void *user, INT32 alignbits,
 void *Z_MallocAlign(size_t size, INT32 tag, void *user, INT32 alignbits)
 #endif
 {
-	size_t extrabytes = (1<<alignbits) - 1;
+	size_t extrabytes = (1<<alignbits) - (sizeof(size_t)*8 > (UINT32) alignbits); // only subtract 1 if the bit shift did not cause an overflow
 	size_t padsize = 0;
 	memblock_t *block;
 	void *ptr;
-- 
GitLab