git: 046a4efe78ad - main - Add CAP_PDDUPFD capability

From: Konstantin Belousov <kib_at_FreeBSD.org>
Date: Tue, 07 Jul 2026 23:28:22 UTC
The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=046a4efe78addafcd4810974d6c71c1cdd591b6b

commit 046a4efe78addafcd4810974d6c71c1cdd591b6b
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-05-21 19:12:22 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-07-07 22:03:52 +0000

    Add CAP_PDDUPFD capability
    
    Reviewed by:    markj
    Tested by:      pho
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D57163
---
 sys/kern/subr_capability.c | 1 +
 sys/sys/caprights.h        | 1 +
 sys/sys/capsicum.h         | 6 ++++--
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/sys/kern/subr_capability.c b/sys/kern/subr_capability.c
index 6e23525186ea..55d6225fd67a 100644
--- a/sys/kern/subr_capability.c
+++ b/sys/kern/subr_capability.c
@@ -88,6 +88,7 @@ const cap_rights_t cap_mmap_rights = CAP_RIGHTS_INITIALIZER(CAP_MMAP);
 const cap_rights_t cap_mkdirat_rights = CAP_RIGHTS_INITIALIZER(CAP_MKDIRAT);
 const cap_rights_t cap_mkfifoat_rights = CAP_RIGHTS_INITIALIZER(CAP_MKFIFOAT);
 const cap_rights_t cap_mknodat_rights = CAP_RIGHTS_INITIALIZER(CAP_MKNODAT);
+const cap_rights_t cap_pddupfd_rights = CAP_RIGHTS_INITIALIZER(CAP_PDDUPFD);
 const cap_rights_t cap_pdgetpid_rights = CAP_RIGHTS_INITIALIZER(CAP_PDGETPID);
 const cap_rights_t cap_pdkill_rights = CAP_RIGHTS_INITIALIZER(CAP_PDKILL);
 const cap_rights_t cap_pdwait_rights = CAP_RIGHTS_INITIALIZER(CAP_PDWAIT);
diff --git a/sys/sys/caprights.h b/sys/sys/caprights.h
index 904d9b4e843a..296fac3b6231 100644
--- a/sys/sys/caprights.h
+++ b/sys/sys/caprights.h
@@ -90,6 +90,7 @@ extern const cap_rights_t cap_mkfifoat_rights;
 extern const cap_rights_t cap_mknodat_rights;
 extern const cap_rights_t cap_mmap_rights;
 extern const cap_rights_t cap_no_rights;
+extern const cap_rights_t cap_pddupfd_rights;
 extern const cap_rights_t cap_pdgetpid_rights;
 extern const cap_rights_t cap_pdkill_rights;
 extern const cap_rights_t cap_pdwait_rights;
diff --git a/sys/sys/capsicum.h b/sys/sys/capsicum.h
index 803804a38734..aa3f2f1bccdf 100644
--- a/sys/sys/capsicum.h
+++ b/sys/sys/capsicum.h
@@ -296,7 +296,9 @@
 #define	CAP_INOTIFY_ADD		CAPRIGHT(1, 0x0000000000200000ULL)
 #define	CAP_INOTIFY_RM		CAPRIGHT(1, 0x0000000000400000ULL)
 
-#define	CAP_UNUSED1_24		CAPRIGHT(1, 0x0000000000800000ULL)
+/* Allows pddupfd(2). */
+#define	CAP_PDDUPFD		CAPRIGHT(1, 0x0000000000800000ULL)
+
 #define	CAP_UNUSED1_25		CAPRIGHT(1, 0x0000000001000000ULL)
 #define	CAP_UNUSED1_26		CAPRIGHT(1, 0x0000000002000000ULL)
 #define	CAP_UNUSED1_27		CAPRIGHT(1, 0x0000000004000000ULL)
@@ -332,7 +334,7 @@
 #define	CAP_UNUSED1_57		CAPRIGHT(1, 0x0100000000000000ULL)
 
 /* All used bits for index 1. */
-#define	CAP_ALL1		CAPRIGHT(1, 0x00000000007FFFFFULL)
+#define	CAP_ALL1		CAPRIGHT(1, 0x0000000000FFFFFFULL)
 
 /* Backward compatibility. */
 #define	CAP_POLL_EVENT		CAP_EVENT