diff options
| author | Alejandro Colomar <alx@kernel.org> | 2024-05-29 01:02:27 +0200 |
|---|---|---|
| committer | Alejandro Colomar <alx@kernel.org> | 2024-05-31 01:42:34 +0200 |
| commit | 129c80157779fdd32c75692e4ac84aad226e0cdd (patch) | |
| tree | aa5981f91f12e240198a8f2f7a25ccf7a71eb684 | |
| parent | d89252d5abd25df87557318fc7c6900a97a430da (diff) | |
| download | man-pages-129c80157779fdd32c75692e4ac84aad226e0cdd.tar.gz | |
PR_SET_MM.2const, PR_SET_MM_EXE_FILE.2const: Split PR_SET_MM_EXE_FILE from PR_SET_MM(2const)
Signed-off-by: Alejandro Colomar <alx@kernel.org>
| -rw-r--r-- | man/man2const/PR_SET_MM.2const | 57 | ||||
| -rw-r--r-- | man/man2const/PR_SET_MM_EXE_FILE.2const | 80 |
2 files changed, 83 insertions, 54 deletions
diff --git a/man/man2const/PR_SET_MM.2const b/man/man2const/PR_SET_MM.2const index aa3d563681..05f57f34a2 100644 --- a/man/man2const/PR_SET_MM.2const +++ b/man/man2const/PR_SET_MM.2const @@ -47,8 +47,6 @@ is one of the options below. .B PR_SET_MM_START_BRK .TQ .B PR_SET_MM_BRK -.P -The following options are available since Linux 3.5. .TQ .B PR_SET_MM_ARG_START .TQ @@ -59,36 +57,8 @@ The following options are available since Linux 3.5. .B PR_SET_MM_ENV_END .TQ .B PR_SET_MM_AUXV -.TP -.B PR_SET_MM_EXE_FILE -.\" commit b32dfe377102ce668775f8b6b1461f7ad428f8b6 -Supersede the -.IR /proc/ pid /exe -symbolic link with a new one pointing to a new executable file -identified by the file descriptor provided in -.I arg3 -argument. -The file descriptor should be obtained with a regular -.BR open (2) -call. -.IP -To change the symbolic link, one needs to unmap all existing -executable memory areas, including those created by the kernel itself -(for example the kernel usually creates at least one executable -memory area for the ELF -.I .text -section). -.IP -In Linux 4.9 and earlier, the -.\" commit 3fb4afd9a504c2386b8435028d43283216bf588e +.TQ .B PR_SET_MM_EXE_FILE -operation can be performed only once in a process's lifetime; -attempting to perform the operation a second time results in the error -.BR EPERM . -This restriction was enforced for security reasons that were subsequently -deemed specious, -and the restriction was removed in Linux 4.10 because some -user-space applications needed to perform this operation more than once. .P The following options are available since Linux 3.18. .\" commit f606b77f1a9e362451aca8f81d8f36a3a112139e @@ -125,28 +95,6 @@ On error, \-1 is returned, and is set to indicate the error. .SH ERRORS .TP -.B EACCES -.I op -is -.BR PR_SET_MM_EXE_FILE , -the file is not executable. -.TP -.B EBADF -.I op -is -.BR PR_SET_MM_EXE_FILE , -and the file descriptor passed in -.I arg3 -is not valid. -.TP -.B EBUSY -.I op -is -.BR PR_SET_MM_EXE_FILE , -and this the second attempt to change the -.IR /proc/ pid /exe -symbolic link, which is prohibited. -.TP .B EINVAL .I op is not a valid value. @@ -178,4 +126,5 @@ option enabled. .BR PR_SET_MM_ARG_START (2const), .BR PR_SET_MM_ARG_END (2const), .BR PR_SET_MM_ENV_START (2const), -.BR PR_SET_MM_ENV_END (2const) +.BR PR_SET_MM_ENV_END (2const), +.BR PR_SET_MM_EXE_FILE (2const) diff --git a/man/man2const/PR_SET_MM_EXE_FILE.2const b/man/man2const/PR_SET_MM_EXE_FILE.2const new file mode 100644 index 0000000000..7e720ab76e --- /dev/null +++ b/man/man2const/PR_SET_MM_EXE_FILE.2const @@ -0,0 +1,80 @@ +.\" Copyright 2012, Cyrill Gorcunov <gorcunov@openvz.org> +.\" Copyright 2012, 2013, 2015, Michael Kerrisk <mtk.manpages@gmail.com> +.\" Copyright 2024, Alejandro Colomar <alx@kernel.org> +.\" +.\" SPDX-License-Identifier: Linux-man-pages-copyleft +.\" +.TH PR_SET_MM_EXE_FILE 2const (date) "Linux man-pages (unreleased)" +.SH NAME +PR_SET_MM_EXE_FILE +\- +modify kernel memory map descriptor fields +.SH LIBRARY +Standard C library +.RI ( libc ", " \-lc ) +.SH SYNOPSIS +.nf +.B #include <sys/prctl.h> +.P +.BI "int prctl(PR_SET_MM, PR_SET_MM_EXE_FILE, long " fd ", 0L, 0L);" +.fi +.SH DESCRIPTION +Supersede the +.IR /proc/ pid /exe +symbolic link with a new one pointing to a new executable file +identified by the file descriptor provided in the +.I fd +argument. +The file descriptor should be obtained with a regular +.BR open (2) +call. +.P +To change the symbolic link, one needs to unmap all existing +executable memory areas, including those created by the kernel itself +(for example the kernel usually creates at least one executable +memory area for the ELF +.I .text +section). +.SH RETURN VALUE +On success, +0 is returned. +On error, \-1 is returned, and +.I errno +is set to indicate the error. +.SH ERRORS +.TP +.B EACCES +The file is not executable. +.TP +.B EBADF +The file descriptor passed in +.I fd +is not valid. +.TP +.B EBUSY +This the second attempt to change the +.IR /proc/ pid /exe +symbolic link. +.SH FILES +.TP +.IR /proc/ pid /exe +.SH STANDARDS +Linux. +.SH HISTORY +Linux 3.5. +.\" commit b32dfe377102ce668775f8b6b1461f7ad428f8b6 +.P +In Linux 4.9 and earlier, the +.\" commit 3fb4afd9a504c2386b8435028d43283216bf588e +.B PR_SET_MM_EXE_FILE +operation can be performed only once in a process's lifetime; +attempting to perform the operation a second time results in the error +.BR EPERM . +This restriction was enforced for security reasons that were subsequently +deemed specious, +and the restriction was removed in Linux 4.10 because some +user-space applications needed to perform this operation more than once. +.SH SEE ALSO +.BR prctl (2), +.BR PR_SET_MM (2const), +.BR proc_pid_exe (5) |
