diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2026-07-10 20:25:54 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2026-08-06 12:52:28 +0000 |
| commit | ffad04235a767852aaac3f1fce673a9c78c2753b (patch) | |
| tree | 611da0c597989d5208f5133e0b93683137e5517d | |
| parent | 30758138f2e36d89bc30cb686796ccc4dfa8b475 (diff) | |
syslogd: Limit rights on procdescs
Reviewed by: jfree, kib
MFC after: 3 weeks
Differential Revision: https://reviews.freebsd.org/D58160
(cherry picked from commit 24816abb8740c387ad4aba4ad2fa4c23b191c351)
| -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 981428dbb8eb..8aed89e5dc36 100644 --- a/usr.sbin/syslogd/syslogd.c +++ b/usr.sbin/syslogd/syslogd.c @@ -3770,6 +3770,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; @@ -3821,6 +3822,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]); } |
