about summary refs log tree commit diff stats
path: root/src/wrapped
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2025-01-25 18:57:02 +0100
committerptitSeb <sebastien.chev@gmail.com>2025-01-25 18:57:02 +0100
commitc5737428456b07d3f9d57bbc458096c437ffbd38 (patch)
treebc21c4e4efd3933685f73fa0776eea33b66944e8 /src/wrapped
parentdab01b8b9ff763bb14d9615f30b47bcfed555c5b (diff)
downloadbox64-c5737428456b07d3f9d57bbc458096c437ffbd38.tar.gz
box64-c5737428456b07d3f9d57bbc458096c437ffbd38.zip
Expanded file mapping tracking for future use (might help #2295)
Diffstat (limited to 'src/wrapped')
-rw-r--r--src/wrapped/wrappedlibc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c
index d3af7de0..e6d7177a 100644
--- a/src/wrapped/wrappedlibc.c
+++ b/src/wrapped/wrappedlibc.c
@@ -3005,8 +3005,10 @@ EXPORT void* my_mmap64(x64emu_t* emu, void *addr, size_t length, int prot, int f
                 prot |= PROT_NEVERCLEAN;
             }
         }
-        DetectUnityPlayer(fd);
-        RecordEnvMappings((uintptr_t)addr, length, fd);
+        if(fd>0) {
+            DetectUnityPlayer(fd);
+            RecordEnvMappings((uintptr_t)ret, length, fd);
+        }
         if(emu)
             setProtection_mmap((uintptr_t)ret, length, prot);
         else
@@ -3082,6 +3084,7 @@ EXPORT int my_munmap(x64emu_t* emu, void* addr, size_t length)
     #endif
     if(!ret) {
         freeProtection((uintptr_t)addr, length);
+        RemoveMapping((uintptr_t)addr, length);
     }
     errno = e;  // preseve errno
     return ret;