The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=fea8849bacd6f7d2d027f9ddce31760e94dd843d
commit fea8849bacd6f7d2d027f9ddce31760e94dd843d Author: Konstantin Belousov <[email protected]> AuthorDate: 2026-02-14 16:38:23 +0000 Commit: Konstantin Belousov <[email protected]> CommitDate: 2026-02-21 09:48:58 +0000 pdrfork(2): do require RFPROCDESC | RFPROC (cherry picked from commit b05be03ceea0a95f7783ddc890885f34bb4023d4) --- lib/libsys/pdfork.2 | 8 +++++--- sys/kern/kern_fork.c | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/libsys/pdfork.2 b/lib/libsys/pdfork.2 index ad7eecb00dae..9cbeb65bc4fc 100644 --- a/lib/libsys/pdfork.2 +++ b/lib/libsys/pdfork.2 @@ -114,11 +114,13 @@ for a description of the possible flags. The .Fn pdrfork -system call requires that the +system call requires that both the .Va RFPROC -or +and +.Va RFPROCDESC +flags, or .Va RFSPAWN -flag is specified. +flag are specified. .Pp .Fn pdgetpid queries the process ID (PID) in the process descriptor diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c index 595d8687c25f..a453af959bb1 100644 --- a/sys/kern/kern_fork.c +++ b/sys/kern/kern_fork.c @@ -214,6 +214,11 @@ sys_pdrfork(struct thread *td, struct pdrfork_args *uap) fr.fr_flags = RFFDG | RFPROC | RFPPWAIT | RFMEM | RFPROCDESC; fr.fr_flags2 = FR2_DROPSIG_CAUGHT; } else { + if ((uap->rfflags & (RFPROC | RFPROCDESC)) != + (RFPROC | RFPROCDESC)) { + return (EXTERROR(EINVAL, + "RFPROC|RFPROCDESC required %#jx", uap->rfflags)); + } fr.fr_flags = uap->rfflags; }
