diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-11-28 18:57:52 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-11-28 18:57:52 +0100 |
| commit | d6d2b2e7563eebea88620dbc67f361523b47cc68 (patch) | |
| tree | 1e8ee0809c9167a4eda966fd4e433c4cfc03f798 /src/wrapped | |
| parent | 4276573f6736f8c57f9a6ff58a1bbecb57800d23 (diff) | |
| download | box64-d6d2b2e7563eebea88620dbc67f361523b47cc68.tar.gz box64-d6d2b2e7563eebea88620dbc67f361523b47cc68.zip | |
Changed how mmap with MAP_32BITS flag is handled (help deadcells, maybe some others)
Diffstat (limited to 'src/wrapped')
| -rwxr-xr-x | src/wrapped/wrappedlibc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index 6d7169bb..cc0a5de8 100755 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -2360,7 +2360,7 @@ EXPORT void* my_mmap64(x64emu_t* emu, void *addr, unsigned long length, int prot if(flags&0x40) { // 0x40 is MAP_32BIT, wich only exist on x86_64! //flags &= ~0x40; // let the flags in? - addr = findBlockNearHint(addr, length); + addr = find31bitBlockNearHint(addr, length); } else if (box64_wine || 1) { // other mmap should be restricted to 47bits if(!addr) addr = find47bitBlock(length); @@ -2373,7 +2373,7 @@ EXPORT void* my_mmap64(x64emu_t* emu, void *addr, unsigned long length, int prot printf_log(LOG_DEBUG, "Warning, mmap on 32bits didn't worked, ask %p, got %p ", addr, ret); munmap(ret, length); loadProtectionFromMap(); // reload map, because something went wrong previously - addr = findBlockNearHint(old_addr, length); // is this the best way? + addr = find31bitBlockNearHint(old_addr, length); // is this the best way? ret = mmap64(addr, length, prot, flags, fd, offset); printf_log(LOG_DEBUG, " tried again with %p, got %p\n", addr, ret); } else if((ret!=(void*)-1) && !(flags&MAP_FIXED) && (box64_wine) && (old_addr) && (addr!=ret) && |