diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-10-03 13:50:38 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-10-03 13:50:38 +0200 |
| commit | c5e894aab2ef924f4f8c3d7a65932e2c68c3086c (patch) | |
| tree | e8e49f5ed0b74c678a6d101c4e726ae5d0a96d79 /src | |
| parent | 49aaeb308033e8f9a74d3175a59cd0eb071b904b (diff) | |
| download | box64-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.c | 9 |
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); } |