Linux Manual Pages development
 help / color / mirror / Atom feed
From: "Günther Noack" <gnoack3000@gmail.com>
To: Alejandro Colomar <alx@kernel.org>
Cc: linux-man@vger.kernel.org, "Günther Noack" <gnoack3000@gmail.com>,
	"Michael Kerrisk" <mtk.manpages@gmail.com>
Subject: [PATCH v2 18/24] man/man7/unix.7: SCM_SECURITY: This is not specific to SELinux
Date: Sun, 18 Oct 2026 19:37:06 +0200	[thread overview]
Message-ID: <20261018173712.27670-19-gnoack3000@gmail.com> (raw)
In-Reply-To: <20261018173712.27670-1-gnoack3000@gmail.com>

Reword the description of SCM_SECURITY to not be specific to SELinux.

The security context is populated in scm_passec() in linux.git
net/core/scm.c, through the security_secid_to_secctx() LSM hook, which
is currently implemented by SELinux, Smack and AppArmor.

Also clarify the properties of the returned string:

* There is no NAME_MAX limit on the length; SELinux contexts can be
  longer than that.  If the control buffer is too small, put_cmsg()
  truncates the data and sets MSG_CTRUNC.

* Whether the string is null-terminated also depends on the LSM:
  SELinux includes the null byte in the length, but smack_to_secctx()
  in security/smack/smack_lsm.c uses strlen() and doesn't.

Fixes: ffad6a017f91 (2018-07-28; "unix.7: Document SCM_SECURITY ancillary data")
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Assisted-by: LLM
Signed-off-by: Günther Noack <gnoack3000@gmail.com>
---

Notes:
    I reworded the LLM phrasing slightly and rewrote the commit message.
    
    I'm open for feedback about whether this is going into too much detail
    about the properties of the returned string.  Linux does indeed not
    guarantee that this terminates with a NUL byte, nor that NAME_MAX is
    large enough to hold it.

 man/man7/unix.7 | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/man/man7/unix.7 b/man/man7/unix.7
index 787a48baa97a..ff5a90863378 100644
--- a/man/man7/unix.7
+++ b/man/man7/unix.7
@@ -307,7 +307,7 @@ and returned as the result of
 is an integer boolean flag.
 .TP
 .B SO_PASSSEC
-Enables receiving of the SELinux security label of the peer socket
+Enables receiving of the security label of the peer socket
 in an ancillary message of type
 .B SCM_SECURITY
 (see below).
@@ -534,13 +534,26 @@ message, the
 option must be enabled on the socket.
 .TP
 .B SCM_SECURITY
-Receive the SELinux security context (the security label)
-of the peer socket.
-The received ancillary data is a null-terminated string containing
+Receive the security context (the security label)
+of the peer socket,
+as provided by the active Linux Security Module (LSM),
+such as SELinux or Smack.
+The received ancillary data is a string containing
 the security context.
-The receiver should allocate at least
+Whether the string includes a terminating null byte
+depends on the LSM;
+the length of the data is given by the
+.I cmsg_len
+field.
+There is no fixed limit on the length of the security context;
+allocating
 .B NAME_MAX
-bytes in the data portion of the ancillary message for this data.
+bytes in the data portion of the ancillary message
+is usually enough.
+If the buffer is too small,
+the data is truncated and the
+.B MSG_CTRUNC
+flag is set (see below).
 .IP
 To receive the security context, the
 .B SO_PASSSEC
-- 
2.56.0


  parent reply	other threads:[~2026-10-18 17:37 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-18 17:36 [PATCH v2 00/24] Documentation fixes in unix(7) Günther Noack
2026-10-18 17:36 ` [PATCH v2 01/24] man/man7/unix.7: ERRORS: EINVAL: The address field is sun_family, not sun_type Günther Noack
2026-10-18 17:36 ` [PATCH v2 02/24] man/man7/unix.7: Socket options: SOL_SOCKET is a level, not a family Günther Noack
2026-10-18 17:36 ` [PATCH v2 03/24] man/man7/unix.7: SO_PASSCRED: ffix Günther Noack
2026-10-18 17:36 ` [PATCH v2 04/24] man/man7/sock_diag.7: Fix member order of struct unix_diag_vfs Günther Noack
2026-10-18 17:36 ` [PATCH v2 05/24] man/man7/sock_diag.7: udiag_wqueue: This is memory in use, not memory available Günther Noack
2026-10-18 17:36 ` [PATCH v2 06/24] man/man7/unix.7: ERRORS: EPROTONOSUPPORT: Protocol 0 is also accepted Günther Noack
2026-10-18 17:36 ` [PATCH v2 07/24] man/man7/unix.7: ERRORS: ETOOMANYREFS: Fix the conditions Günther Noack
2026-10-18 17:36 ` [PATCH v2 08/24] man/man7/socket.7: SO_PEEK_OFF: This option is no longer specific to unix(7) Günther Noack
2026-10-18 17:36 ` [PATCH v2 09/24] man/man7/unix.7: SO_PEERCRED: Also works for SOCK_SEQPACKET Günther Noack
2026-10-18 17:36 ` [PATCH v2 10/24] man/man7/unix.7: SIOCINQ: Document behavior " Günther Noack
2026-10-18 17:36 ` [PATCH v2 11/24] man/man7/sock_diag.7: udiag_states: Document TCP_CLOSE Günther Noack
2026-10-18 17:37 ` [PATCH v2 12/24] man/man7/sock_diag.7: UNIX_DIAG_NAME: The payload is not always a pathname Günther Noack
2026-10-18 17:37 ` [PATCH v2 13/24] man/man7/sock_diag.7: Document UDIAG_SHOW_UID Günther Noack
2026-10-18 17:37 ` [PATCH v2 14/24] man/man7/unix.7: Several items of the same type may be sent in one message Günther Noack
2026-10-18 17:37 ` [PATCH v2 15/24] man/man2/bind.2: ERRORS: EACCES: Write permission on the directory is required Günther Noack
2026-10-18 17:37 ` [PATCH v2 16/24] man/man7/unix.7: Autobind: Fix when it happens, and mention SO_PASSPIDFD Günther Noack
2026-10-18 17:37 ` [PATCH v2 17/24] man/man7/unix.7: SOCK_RAW is accepted as an alias for SOCK_DGRAM Günther Noack
2026-10-18 17:37 ` Günther Noack [this message]
2026-10-18 17:37 ` [PATCH v2 19/24] man/man7/unix.7: SO_PASSSEC: wfix Günther Noack
2026-10-18 17:37 ` [PATCH v2 20/24] man/man7/unix.7: ERRORS: Document EACCES, EAGAIN, EMSGSIZE, ENOSPC, and EPERM Günther Noack
2026-10-18 17:37 ` [PATCH v2 21/24] man/man7/unix.7: Abstract sockets are scoped to a network namespace Günther Noack
2026-10-18 17:37 ` [PATCH v2 22/24] man/man7/unix.7: Remove mentions of unsupported out-of-band messaging Günther Noack
2026-10-18 17:37 ` [PATCH v2 23/24] man/man7/unix.7: Document SO_PASSPIDFD, SO_PEERPIDFD, and SCM_PIDFD Günther Noack
2026-10-18 17:37 ` [PATCH v2 24/24] man/man7/unix.7: Document SO_PASSRIGHTS Günther Noack
2026-10-18 18:37 ` [PATCH v2 00/24] Documentation fixes in unix(7) Kuniyuki Iwashima
2026-10-19  7:05   ` Alejandro Colomar
2026-10-19  8:48     ` Günther Noack
2026-10-19 12:07     ` the meaning of "ffix" (was: [PATCH v2 00/24] Documentation fixes in unix(7)) G. Branden Robinson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20261018173712.27670-19-gnoack3000@gmail.com \
    --to=gnoack3000@gmail.com \
    --cc=alx@kernel.org \
    --cc=linux-man@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox