about summary refs log tree commit diff stats
path: root/src/custommem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/custommem.c')
-rw-r--r--src/custommem.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/custommem.c b/src/custommem.c
index 80453230..634b849b 100644
--- a/src/custommem.c
+++ b/src/custommem.c
@@ -678,7 +678,7 @@ void protectDB(uintptr_t addr, uintptr_t size)
             prot = PROT_READ | PROT_WRITE;    // comes from malloc & co, so should not be able to execute
         kh_value(memprot, k)[ii] = prot|PROT_DYNAREC;
         if(!(prot&PROT_DYNAREC))
-            mprotect((void*)(i<<MEMPROT_SHIFT), 1<<MEMPROT_SHIFT, prot&~PROT_WRITE);
+            mprotect((void*)(i<<MEMPROT_SHIFT), 1<<MEMPROT_SHIFT, prot&~(PROT_WRITE|PROT_CUSTOM));
     }
     pthread_mutex_unlock(&mutex_prot);
 }
@@ -702,7 +702,7 @@ void protectDBnolock(uintptr_t addr, uintptr_t size)
             prot = PROT_READ | PROT_WRITE;    // comes from malloc & co, so should not be able to execute
         kh_value(memprot, k)[ii] = prot|PROT_DYNAREC;
         if(!(prot&PROT_DYNAREC))
-            mprotect((void*)(i<<MEMPROT_SHIFT), 1<<MEMPROT_SHIFT, prot&~PROT_WRITE);
+            mprotect((void*)(i<<MEMPROT_SHIFT), 1<<MEMPROT_SHIFT, prot&~(PROT_WRITE|PROT_CUSTOM));
     }
 }
 
@@ -736,7 +736,7 @@ void unprotectDB(uintptr_t addr, uintptr_t size)
         uint8_t prot = kh_value(memprot, k)[ii];
         kh_value(memprot, k)[ii] = prot&~PROT_DYNAREC;
         if(prot&PROT_DYNAREC) {
-            mprotect((void*)(i<<MEMPROT_SHIFT), 1<<MEMPROT_SHIFT, prot&~PROT_DYNAREC);
+            mprotect((void*)(i<<MEMPROT_SHIFT), 1<<MEMPROT_SHIFT, prot&~PROT_CUSTOM);
             cleanDBFromAddressRange((i<<MEMPROT_SHIFT), 1<<MEMPROT_SHIFT, 0);
         }
     }
@@ -762,7 +762,7 @@ void updateProtection(uintptr_t addr, uintptr_t size, uint32_t prot)
         const uintptr_t ii = i&(MEMPROT_SIZE-1);
         uint32_t dyn = kh_value(memprot, k)[ii]&PROT_DYNAREC;
         if(dyn && (prot&PROT_WRITE))    // need to remove the write protection from this block
-            mprotect((void*)(i<<MEMPROT_SHIFT), 1<<MEMPROT_SHIFT, prot&~PROT_DYNAREC);
+            mprotect((void*)(i<<MEMPROT_SHIFT), 1<<MEMPROT_SHIFT, prot&~PROT_CUSTOM);
         kh_value(memprot, k)[ii] = prot|dyn|PROT_ALLOC;
     }
     pthread_mutex_unlock(&mutex_prot);