about summary refs log tree commit diff stats
path: root/src/custommem.c
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-03-07 14:14:07 +0100
committerptitSeb <sebastien.chev@gmail.com>2022-03-07 14:14:07 +0100
commit622baec9529bb261cd250c2c2b9768b75ee0530f (patch)
tree45c313608b2e02fbe570a92b4113a855de25be27 /src/custommem.c
parenta326c821580ed2cd6665312a6d78696c5f6afcca (diff)
downloadbox64-622baec9529bb261cd250c2c2b9768b75ee0530f.tar.gz
box64-622baec9529bb261cd250c2c2b9768b75ee0530f.zip
Fix some special case on mmap64 wrapping
Diffstat (limited to 'src/custommem.c')
-rw-r--r--src/custommem.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/custommem.c b/src/custommem.c
index b653e78b..843532bb 100644
--- a/src/custommem.c
+++ b/src/custommem.c
@@ -940,6 +940,7 @@ void allocProtection(uintptr_t addr, size_t size, uint32_t prot)
 
 void loadProtectionFromMap()
 {
+printf_log(LOG_INFO, "loadProtectionFromMap(), mapclean=%d\n", box64_mapclean);
     if(box64_mapclean)
         return;
     char buf[500];
@@ -1091,7 +1092,7 @@ void* find47bitBlock(size_t size)
 void* find47bitBlockNearHint(void* hint, size_t size)
 {
     // slow iterative search... Would need something better one day
-    uintptr_t addr = (uintptr_t)hint;
+    uintptr_t addr = (uintptr_t)(hint?hint:LOWEST);
     do {
         addr = nextFree(addr, 0x10000);
         uintptr_t sz = maxFree(addr, size);
@@ -1106,7 +1107,7 @@ void* find47bitBlockNearHint(void* hint, size_t size)
 void* findBlockNearHint(void* hint, size_t size)
 {
     // slow iterative search... Would need something better one day
-    uintptr_t addr = (uintptr_t)hint;
+    uintptr_t addr = (uintptr_t)(hint?hint:LOWEST);
     do {
         addr = nextFree(addr, 0x10000);
         uintptr_t sz = maxFree(addr, size);