Explorar o código

pageProtect when missing pthread_jit_write_protect_np

Jethro Grassie %!s(int64=4) %!d(string=hai) anos
pai
achega
4d8ef87936
Modificáronse 1 ficheiros con 4 adicións e 0 borrados
  1. 4 0
      src/virtual_memory.cpp

+ 4 - 0
src/virtual_memory.cpp

@@ -142,6 +142,8 @@ void setPagesRW(void* ptr, std::size_t bytes) {
 	&& MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0
 	if (__builtin_available(macOS 11.0, *)) {
 		pthread_jit_write_protect_np(false);
+	} else {
+		pageProtect(ptr, bytes, PAGE_READWRITE);
 	}
 #else
 	pageProtect(ptr, bytes, PAGE_READWRITE);
@@ -153,6 +155,8 @@ void setPagesRX(void* ptr, std::size_t bytes) {
 	&& MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_11_0
 	if (__builtin_available(macOS 11.0, *)) {
 		pthread_jit_write_protect_np(true);
+	} else {
+		pageProtect(ptr, bytes, PAGE_EXECUTE_READ);
 	}
 #else
 	pageProtect(ptr, bytes, PAGE_EXECUTE_READ);