diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2026-07-10 20:25:54 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2026-07-10 21:21:59 +0000 |
| commit | 24816abb8740c387ad4aba4ad2fa4c23b191c351 (patch) | |
| tree | f0982bad031ed8d7e2f0eaa98b43d2d6c2f125f5 | |
| parent | 8a365723923e4eadad962d9c7e8162dfbfe3e78c (diff) | |
syslogd: Limit rights on procdescs
Reviewed by: jfree, kib
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D58160
| -rw-r--r-- | usr.sbin/syslogd/syslogd.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c index 19190124c8b4..e3d144a532b5 100644 --- a/usr.sbin/syslogd/syslogd.c +++ b/usr.sbin/syslogd/syslogd.c @@ -3772,6 +3772,7 @@ validate(struct sockaddr *sa, const char *hname) int p_open(const char *prog, int *rpd) { + cap_rights_t rights; struct sigaction act = { }; int pfd[2], pd; pid_t pid; @@ -3823,6 +3824,10 @@ p_open(const char *prog, int *rpd) dprintf("Warning: cannot change pipe to PID %d to non-blocking" "behaviour.", pid); } + + if (cap_rights_limit(pd, + cap_rights_init(&rights, CAP_PDKILL, CAP_EVENT)) == -1) + err(1, "cap_rights_limit"); *rpd = pd; return (pfd[1]); } |
