about summary refs log tree commit diff stats
path: root/src/wrapped
diff options
context:
space:
mode:
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;