diff options
| -rw-r--r-- | src/mman/mprotect.c | 6 | 
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);  } | 
