about summary refs log tree commit diff
path: root/src/mman/mprotect.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mman/mprotect.c')
-rw-r--r--src/mman/mprotect.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mman/mprotect.c b/src/mman/mprotect.c
index 1db2aea2..5ab2d8b0 100644
--- a/src/mman/mprotect.c
+++ b/src/mman/mprotect.c
@@ -1,7 +1,11 @@
 #include <sys/mman.h>
+#include <limits.h>
 #include "syscall.h"
 
 int mprotect(void *addr, size_t len, int prot)
 {
-	return syscall(SYS_mprotect, addr, len, prot);
+	size_t start, end;
+	start = (size_t)addr & -PAGE_SIZE;
+	end = (size_t)((char *)addr + len + PAGE_SIZE-1) & -PAGE_SIZE;
+	return syscall(SYS_mprotect, start, end-start, prot);
 }