Linux Manual Pages development
 help / color / mirror / Atom feed
From: Alejandro Colomar <alx@kernel.org>
To: "Günther Noack" <gnoack3000@gmail.com>
Cc: linux-man@vger.kernel.org,
	Michael Kerrisk <mtk.manpages@gmail.com>,
	 Kuniyuki Iwashima <kuniyu@google.com>
Subject: Re: [PATCH 4/7] man/man7/unix.7: SCM_SECURITY: Generalize to other LSMs, not just SELinux
Date: Fri, 23 Oct 2026 11:57:41 +0200	[thread overview]
Message-ID: <atsufiZwUg3d-cKs@debian> (raw)
In-Reply-To: <20261021212256.27961-5-gnoack3000@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3710 bytes --]

Hi Günther,

> Date: 2026-10-21 23:22:53+0200
> From: Günther Noack <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>
> Cc: Kuniyuki Iwashima <kuniyu@google.com>
> Assisted-by: LLM
> Signed-off-by: Günther Noack <gnoack3000@gmail.com>
> ---
> 
> Notes:
>     This feature is also available in other LSMs.  Unfortunately, they
>     implemented it inconsistently and that complicates the description of
>     how string boundaries are handled.  Linux does indeed neither
>     guarantee that this terminates with a NUL byte, nor that NAME_MAX is
>     large enough to hold it.

...

>     
>     This is the verbose variant, but I am open for suggestions regarding
>     what level of detail is appropriate here.
> 
>  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 ded82768322b..4abd216d19c7 100644
> --- a/man/man7/unix.7
> +++ b/man/man7/unix.7
> @@ -317,7 +317,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).
> @@ -544,13 +544,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;

This seems to contradict the commit message.  The commit message says
that the string is terminated, but that the reported length might or
might not be off-by-one (i.e., not count or count the '\0').

This text, however, is saying that in some cases there might not be
a '\0' at all.

Am I missing something?


Have a lovely day!
Alex

> +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
> 
> 

-- 
<https://www.alejandro-colomar.es>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2026-10-23  9:57 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-21 21:22 [PATCH 0/7] unix.7: Socket Options and SCM_* fixes Günther Noack
2026-10-21 21:22 ` [PATCH 1/7] man/man7/unix.7: ERRORS: ETOOMANYREFS: Fix the conditions Günther Noack
2026-10-22 21:14   ` Alejandro Colomar
2026-10-23 16:50     ` Günther Noack
2026-10-24  4:45   ` Kuniyuki Iwashima
2026-10-21 21:22 ` [PATCH 2/7] man/man7/unix.7: Multiple same-typed SCM_* messages may be sent in one message Günther Noack
2026-10-22 21:28   ` Alejandro Colomar
2026-10-23 17:09     ` Günther Noack
2026-10-21 21:22 ` [PATCH 3/7] man/man7/unix.7: Autobind: Clarify when it happens, and mention SO_PASSPIDFD Günther Noack
2026-10-24  4:57   ` Kuniyuki Iwashima
2026-10-26 21:55     ` Günther Noack
2026-10-27  5:04       ` Kuniyuki Iwashima
2026-10-21 21:22 ` [PATCH 4/7] man/man7/unix.7: SCM_SECURITY: Generalize to other LSMs, not just SELinux Günther Noack
2026-10-23  9:57   ` Alejandro Colomar [this message]
2026-10-23 17:57     ` Günther Noack
2026-10-23 18:13       ` Alejandro Colomar
2026-10-26 22:41         ` Günther Noack
2026-10-27  8:54           ` Günther Noack
2026-10-27 21:46             ` Alejandro Colomar
2026-10-27 22:30               ` Günther Noack
2026-10-27 22:59                 ` Alejandro Colomar
2026-10-28  6:19                   ` Günther Noack
2026-10-28 12:45                     ` Alejandro Colomar
2026-10-27 16:32           ` Casey Schaufler
2026-10-27 21:52             ` Alejandro Colomar
2026-10-21 21:22 ` [PATCH 5/7] man/man7/unix.7: SO_PASSSEC: wfix Günther Noack
2026-10-24  5:02   ` Kuniyuki Iwashima
2026-10-24  8:36     ` Alejandro Colomar
2026-10-26 22:42       ` Günther Noack
2026-10-27  5:05         ` Kuniyuki Iwashima
2026-10-21 21:22 ` [PATCH 6/7] man/man7/unix.7: Document SO_PASSPIDFD, SO_PEERPIDFD, and SCM_PIDFD Günther Noack
2026-10-24  5:22   ` Kuniyuki Iwashima
2026-10-26 23:02     ` Günther Noack
2026-10-27  5:06       ` Kuniyuki Iwashima
2026-10-21 21:22 ` [PATCH 7/7] man/man7/unix.7: Document SO_PASSRIGHTS Günther Noack

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=atsufiZwUg3d-cKs@debian \
    --to=alx@kernel.org \
    --cc=gnoack3000@gmail.com \
    --cc=kuniyu@google.com \
    --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