aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2024-01-17 16:46:39 +0000
committerGitHub <noreply@github.com>2024-01-17 16:46:39 +0000
commitc5bab58180dd7bf7aaa882d52f4f4f91e055f155 (patch)
treeeab3be098a4457252eaa412c4d1870ceaa075be0
parent5ad88ea1699bed640b97e15f4525cb68dd80248e (diff)
parentc6c710465a087473c5856f1f298ebea12d4d516a (diff)
Merge pull request #3076 from xb-bx/mprotect-fix-for-linux-and-darwin
virtual.protect returns inverted result on linux and darwin platforms
-rw-r--r--core/mem/virtual/virtual_darwin.odin2
-rw-r--r--core/mem/virtual/virtual_linux.odin2
2 files changed, 2 insertions, 2 deletions
diff --git a/core/mem/virtual/virtual_darwin.odin b/core/mem/virtual/virtual_darwin.odin
index 5505149b0..bd1336cba 100644
--- a/core/mem/virtual/virtual_darwin.odin
+++ b/core/mem/virtual/virtual_darwin.odin
@@ -136,7 +136,7 @@ _protect :: proc "contextless" (data: rawptr, size: uint, flags: Protect_Flags)
if .Write in flags { pflags |= PROT_WRITE }
if .Execute in flags { pflags |= PROT_EXEC }
err := _mprotect(data, size, pflags)
- return err != 0
+ return err == 0
}
diff --git a/core/mem/virtual/virtual_linux.odin b/core/mem/virtual/virtual_linux.odin
index 7ffc7643e..b927f2877 100644
--- a/core/mem/virtual/virtual_linux.odin
+++ b/core/mem/virtual/virtual_linux.odin
@@ -40,7 +40,7 @@ _protect :: proc "contextless" (data: rawptr, size: uint, flags: Protect_Flags)
if .Write in flags { pflags |= {.WRITE} }
if .Execute in flags { pflags |= {.EXEC} }
errno := linux.mprotect(data, size, pflags)
- return errno != .NONE
+ return errno == .NONE
}
_platform_memory_init :: proc() {