NAME
mprotect
—
control the protection of
pages
LIBRARY
library “libc”
SYNOPSIS
#include
<sys/mman.h>
int
mprotect
(void
*addr, size_t len,
int prot);
DESCRIPTION
Themprotect
system call changes the specified pages to
have protection prot. Not all implementations will
guarantee protection on a page basis; the granularity of protection changes
may be as large as an entire region.
The protections (region accessibility) are specified in the prot argument by OR'ing the following values:
PROT_EXEC
- Pages may be executed.
PROT_READ
- Pages may be read.
PROT_WRITE
- Pages may be written.
PROT_NONE
- Placeholder when requesting no access permission.
RETURN VALUES
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.
ERRORS
- [
EACCES
] - A memory protection violation occurred.
The
PROT_EXEC
flag was attempted on pages which belong to a file system mounted with theNOEXEC
flag.The new protection is less restrictive than the protection originally set with mmap(2).
PaX mprotect restrictions prohibit the requested protection.
- [
EINVAL
] - An invalid memory range, or invalid parameters were provided.
- [
ENOMEM
] - A resource shortage occurred while internally calling uvm_map_protect(9).
SEE ALSO
HISTORY
The mprotect
function first appeared in
4.4BSD.