git: 606061ea463d - main - sys: add AUE_PDOPENPID

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

URL: https://cgit.FreeBSD.org/src/commit/?id=606061ea463dd1d7c3664b296e569b4b25d0f275

commit 606061ea463dd1d7c3664b296e569b4b25d0f275
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-05-20 02:14:24 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-07-07 01:25:08 +0000

    sys: add AUE_PDOPENPID
    
    Reviewed by:    markj
    Tested by:      pho
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D57124
---
 sys/bsm/audit_kevents.h        |  1 +
 sys/kern/sys_procdesc.c        |  3 +++
 sys/kern/syscalls.master       |  2 +-
 sys/security/audit/audit_bsm.c | 10 ++++++++++
 4 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/sys/bsm/audit_kevents.h b/sys/bsm/audit_kevents.h
index ac6f5d69f07d..fb54f179d677 100644
--- a/sys/bsm/audit_kevents.h
+++ b/sys/bsm/audit_kevents.h
@@ -665,6 +665,7 @@
 #define	AUE_SETCRED		43271	/* FreeBSD-specific. */
 #define	AUE_INOTIFY		43272	/* FreeBSD/Linux. */
 #define	AUE_PDRFORK		43273	/* FreeBSD-specific. */
+#define	AUE_PDOPENPID		43274	/* FreeBSD-specific. */
 
 /*
  * Darwin BSM uses a number of AUE_O_* definitions, which are aliased to the
diff --git a/sys/kern/sys_procdesc.c b/sys/kern/sys_procdesc.c
index 3fca3ea29b18..4749a9b8bf7e 100644
--- a/sys/kern/sys_procdesc.c
+++ b/sys/kern/sys_procdesc.c
@@ -695,6 +695,9 @@ kern_pdopenpid(struct thread *td, pid_t pid, int flags)
 int
 sys_pdopenpid(struct thread *td, struct pdopenpid_args *args)
 {
+	AUDIT_ARG_PID(args->pid);
+	AUDIT_ARG_FFLAGS(args->flags);
+
 	if ((args->flags & ~(PD_ALLOWED_AT_FORK)) != 0)
 		return (EINVAL);
 	return (kern_pdopenpid(td, args->pid, args->flags));
diff --git a/sys/kern/syscalls.master b/sys/kern/syscalls.master
index 41580d0c4595..8ea32a7b0058 100644
--- a/sys/kern/syscalls.master
+++ b/sys/kern/syscalls.master
@@ -3429,7 +3429,7 @@
 		    int flags
 		);
 	}
-603	AUE_NULL	STD {
+603	AUE_PDOPENPID	STD {
 		int pdopenpid(
 		    pid_t pid,
 		    int flags
diff --git a/sys/security/audit/audit_bsm.c b/sys/security/audit/audit_bsm.c
index 4654b607aea5..8873eb877234 100644
--- a/sys/security/audit/audit_bsm.c
+++ b/sys/security/audit/audit_bsm.c
@@ -1412,6 +1412,16 @@ kaudit_to_bsm(struct kaudit_record *kar, struct au_record **pau)
 			kau_write(rec, tok);
 		}
 		break;
+	case AUE_PDOPENPID:
+		if (ARG_IS_VALID(kar, ARG_PID)) {
+			tok = au_to_arg32(1, "PID", ar->ar_arg_pid);
+			kau_write(rec, tok);
+		}
+		if (ARG_IS_VALID(kar, ARG_FFLAGS)) {
+			tok = au_to_arg32(2, "flags", ar->ar_arg_fflags);
+			kau_write(rec, tok);
+		}
+		break;
 
 	case AUE_PROCCTL:
 		if (ARG_IS_VALID(kar, ARG_VALUE)) {