summaryrefslogtreecommitdiffstats
path: root/usr.bin
diff options
context:
space:
mode:
authorsimon <simon@FreeBSD.org>2011-04-23 14:19:26 +0000
committersimon <simon@FreeBSD.org>2011-04-23 14:19:26 +0000
commit89abec7a177c9bb5e30684c5452a1fc04cd7ee59 (patch)
treec51267a798d015b346c4dae6a58143043970dfb9 /usr.bin
parent20f7936c444f84ecb878598398821ff0cbf6e815 (diff)
downloadFreeBSD-src-89abec7a177c9bb5e30684c5452a1fc04cd7ee59.zip
FreeBSD-src-89abec7a177c9bb5e30684c5452a1fc04cd7ee59.tar.gz
Check return code of setuid() and setgid() in finger.
While they will not fail in normal circumstances, better safe than sorry. MFC after: 1 week
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/finger/finger.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/usr.bin/finger/finger.c b/usr.bin/finger/finger.c
index dcdc3f4..6586f0a 100644
--- a/usr.bin/finger/finger.c
+++ b/usr.bin/finger/finger.c
@@ -164,11 +164,15 @@ main(int argc, char **argv)
if (getuid() == 0 || geteuid() == 0) {
invoker_root = 1;
if ((pw = getpwnam(UNPRIV_NAME)) && pw->pw_uid > 0) {
- setgid(pw->pw_gid);
- setuid(pw->pw_uid);
+ if (setgid(pw->pw_gid) != 0)
+ err(1, "setgid()");
+ if (setuid(pw->pw_uid) != 0)
+ err(1, "setuid()");
} else {
- setgid(UNPRIV_UGID);
- setuid(UNPRIV_UGID);
+ if (setgid(UNPRIV_UGID) != 0)
+ err(1, "setgid()");
+ if (setuid(UNPRIV_UGID) != 0)
+ err(1, "setuid()");
}
}
OpenPOWER on IntegriCloud