summaryrefslogtreecommitdiff
path: root/Documentation/admin-guide/binfmt-misc.rst
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2026-07-21 16:13:53 +0200
committerChristian Brauner <brauner@kernel.org>2026-08-03 10:08:45 +0200
commit75e536852f9a5f1880091d58f46cdf2fce2101b4 (patch)
treef82f28cf67adfb9d26b73723a4a118bebfd3992c /Documentation/admin-guide/binfmt-misc.rst
parenta4bdab2be4fdaf5f90a7fc445452167cb624cdf2 (diff)
downloadlinux-next-75e536852f9a5f1880091d58f46cdf2fce2101b4.tar.gz
linux-next-75e536852f9a5f1880091d58f46cdf2fce2101b4.zip
binfmt_misc: add a static transparent flag 'T'
Let a registration opt into transparent dispatch. The 'T' flag lets a matched binary keep its argument vector and is sent to the interpreter through AT_EXECFD. The process's identity is the binary's. 'T' implies 'O' exactly like 'C' does. 'P' is rejected in combination with it. Transparency preserves the whole argument vector so there is nothing left for 'P' to say. 'C' remains an independent choice and 'F' keeps working. A pre-opened interpreter is orthogonal to how the binary is handed over. Like the other flag characters 'T' cannot be used as the field delimiter. The flag scan would run off the registration buffer. Link: https://patch.msgid.link/20260721-work-bpf-binfmt_misc-ptinterp-v2-11-e57866e4ae0f@kernel.org Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
Diffstat (limited to 'Documentation/admin-guide/binfmt-misc.rst')
-rw-r--r--Documentation/admin-guide/binfmt-misc.rst10
1 files changed, 10 insertions, 0 deletions
diff --git a/Documentation/admin-guide/binfmt-misc.rst b/Documentation/admin-guide/binfmt-misc.rst
index 9f0d9132723f..62088468350b 100644
--- a/Documentation/admin-guide/binfmt-misc.rst
+++ b/Documentation/admin-guide/binfmt-misc.rst
@@ -90,6 +90,16 @@ Here is what the fields mean:
emulation is installed and uses the opened image to spawn the
emulator, meaning it is always available once installed,
regardless of how the environment changes.
+ ``T`` - transparent
+ Run the interpreter transparently. The binary is handed to
+ the interpreter through ``AT_EXECFD`` (``T`` implies ``O``),
+ the argument vector is left exactly as the caller built it
+ and the kernel labels ``/proc/pid/exe`` with the binary
+ instead of the interpreter. The interpreter has to load the
+ binary from ``AT_EXECFD`` and follow the
+ ``AT_FLAGS_TRANSPARENT_INTERP`` contract. Combining ``T``
+ with ``P`` is rejected: transparency preserves the whole
+ argument vector, argv[0] included.
There are some restrictions: