Add SCM_SECURITY, SCM_PIDFD to bits/socket.h

Message ID 16452ef-e89d-9618-efbf-475f95eb6e36@codesourcery.com
State Committed
Commit 5ef608f36493c5d711418c5d31a7ebe710decc6e
Headers
Series Add SCM_SECURITY, SCM_PIDFD to bits/socket.h |

Checks

Context Check Description
redhat-pt-bot/TryBot-apply_patch success Patch applied to master at the time it was sent
redhat-pt-bot/TryBot-32bit success Build for i686
linaro-tcwg-bot/tcwg_glibc_build--master-arm warning Patch is already merged
linaro-tcwg-bot/tcwg_glibc_check--master-arm warning Patch is already merged
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 warning Patch is already merged
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 warning Patch is already merged

Commit Message

Joseph Myers Oct. 13, 2023, 9:45 p.m. UTC
  Linux 6.5 adds a constant SCM_PIDFD (recall that the non-uapi
linux/socket.h, where this constant is added, is in fact a header
providing many constants that are part of the kernel/userspace
interface).  This shows up that SCM_SECURITY, from the same set of
definitions and added in Linux 2.6.17, is also missing from glibc,
although glibc has the first two constants from this set, SCM_RIGHTS
and SCM_CREDENTIALS; add both missing constants to glibc.

Tested for x86_64.
  

Comments

Florian Weimer Oct. 14, 2023, 8:47 a.m. UTC | #1
* Joseph Myers:

> Linux 6.5 adds a constant SCM_PIDFD (recall that the non-uapi
> linux/socket.h, where this constant is added, is in fact a header
> providing many constants that are part of the kernel/userspace
> interface).  This shows up that SCM_SECURITY, from the same set of
> definitions and added in Linux 2.6.17, is also missing from glibc,
> although glibc has the first two constants from this set, SCM_RIGHTS
> and SCM_CREDENTIALS; add both missing constants to glibc.
>
> Tested for x86_64.
>
> diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
> index 57b05715be..c19814c5cf 100644
> --- a/sysdeps/unix/sysv/linux/bits/socket.h
> +++ b/sysdeps/unix/sysv/linux/bits/socket.h
> @@ -367,6 +367,10 @@ enum
>  #ifdef __USE_GNU
>      , SCM_CREDENTIALS = 0x02	/* Credentials passing.  */
>  # define SCM_CREDENTIALS SCM_CREDENTIALS
> +    , SCM_SECURITY = 0x03	/* Security label.  */
> +# define SCM_SECURITY SCM_SECURITY
> +    , SCM_PIDFD = 0x04		/* Pidfd.  */
> +# define SCM_PIDFD SCM_PIDFD
>  #endif
>    };

Looks good, thanks.  It's tested in tools/ in the kernel tree, so it
seems this is part of UAPI despite not being defined/declared in
include/uapi/.
  

Patch

diff --git a/sysdeps/unix/sysv/linux/bits/socket.h b/sysdeps/unix/sysv/linux/bits/socket.h
index 57b05715be..c19814c5cf 100644
--- a/sysdeps/unix/sysv/linux/bits/socket.h
+++ b/sysdeps/unix/sysv/linux/bits/socket.h
@@ -367,6 +367,10 @@  enum
 #ifdef __USE_GNU
     , SCM_CREDENTIALS = 0x02	/* Credentials passing.  */
 # define SCM_CREDENTIALS SCM_CREDENTIALS
+    , SCM_SECURITY = 0x03	/* Security label.  */
+# define SCM_SECURITY SCM_SECURITY
+    , SCM_PIDFD = 0x04		/* Pidfd.  */
+# define SCM_PIDFD SCM_PIDFD
 #endif
   };