about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2024-10-03 13:50:38 +0200
committerptitSeb <sebastien.chev@gmail.com>2024-10-03 13:50:38 +0200
commitc5e894aab2ef924f4f8c3d7a65932e2c68c3086c (patch)
treee8e49f5ed0b74c678a6d101c4e726ae5d0a96d79 /src
parent49aaeb308033e8f9a74d3175a59cd0eb071b904b (diff)
downloadbox64-c5e894aab2ef924f4f8c3d7a65932e2c68c3086c.tar.gz
box64-c5e894aab2ef924f4f8c3d7a65932e2c68c3086c.zip
[BOX32] More check for low alignment in memalign wrapped functions
Diffstat (limited to 'src')
-rw-r--r--src/mallochook.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mallochook.c b/src/mallochook.c
index 08db1429..a273f25d 100644
--- a/src/mallochook.c
+++ b/src/mallochook.c
@@ -236,19 +236,24 @@ EXPORT void* realloc(void* p, size_t s)
     return box_realloc(p, s);
 }
 
-EXPORT void* aligned_alloc(size_t align, size_t size)
+EXPORT void* memalign(size_t align, size_t size)
 {
     if(malloc_hack_2 && ALLOC && real_aligned_alloc) {
         return (void*)RunFunctionFmt(real_aligned_alloc, "LL", align, size);
     }
+    if(box64_is32bits && align==4)
+        align = sizeof(void*);
     return box_memalign(align, size);
 }
 
-EXPORT void* memalign(size_t align, size_t size)
+EXPORT void* aligned_alloc(size_t align, size_t size)
 {
     if(malloc_hack_2 && ALLOC && real_aligned_alloc) {
         return (void*)RunFunctionFmt(real_aligned_alloc, "LL", align, size);
     }
+    if(box64_is32bits && align==4) {
+        return memalign(align, size);
+    }
     return box_memalign(align, size);
 }