diff options
| author | Ed Maste <emaste@FreeBSD.org> | 2024-11-28 16:54:48 +0000 |
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2024-12-01 20:29:02 +0000 |
| commit | d4dd9e22c13896e6b5e2a6fc78dad4f8496cc14d (patch) | |
| tree | 998a6fd400a2ac35e07fa232653ebecaea246704 /libexec | |
| parent | 4294f1cac15300046369d7e464ce96363839757c (diff) | |
Diffstat (limited to 'libexec')
| -rw-r--r-- | libexec/comsat/comsat.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libexec/comsat/comsat.c b/libexec/comsat/comsat.c index 76f6190bea7b..e2aea1b709b6 100644 --- a/libexec/comsat/comsat.c +++ b/libexec/comsat/comsat.c @@ -212,10 +212,11 @@ jkfprintf(FILE *tp, char user[], char file[], off_t offset) struct passwd *p; unsigned char line[BUFSIZ]; - /* Set effective uid to user in case mail drop is on nfs */ - if ((p = getpwnam(user)) == NULL) - return; - if (setuid(p->pw_uid) != 0) + /* Set uid/gid/groups to user's in case mail drop is on nfs */ + if ((p = getpwnam(user)) == NULL || + initgroups(p->pw_name, p->pw_gid) == -1 || + setgid(p->pw_gid) == -1 || + setuid(p->pw_uid) == -1) return; if ((fi = fopen(file, "r")) == NULL) |
