summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2019-09-13 13:12:42 +1000
committerDamien Miller <djm@mindrot.org>2019-09-13 13:15:14 +1000
commitc17e4638e5592688264fc0349f61bfc7b4425aa5 (patch)
tree58f25b12311c84426d1a250d33398ddea5a48c49
parent91a2135f32acdd6378476c5bae475a6e7811a6a2 (diff)
explicitly test set[ug]id() return values
Legacy !_POSIX_SAVED_IDS path only; coverity report via Ed Maste ok dtucker@
-rw-r--r--uidswap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/uidswap.c b/uidswap.c
index 1d78c607..40e12150 100644
--- a/uidswap.c
+++ b/uidswap.c
@@ -162,8 +162,10 @@ restore_uid(void)
* Propagate the real uid (usually more privileged) to effective uid
* as well.
*/
- setuid(getuid());
- setgid(getgid());
+ if (setuid(getuid()) == -1)
+ fatal("%s: setuid failed: %s", __func__, strerror(errno));
+ if (setgid(getgid()) == -1)
+ fatal("%s: setgid failed: %s", __func__, strerror(errno));
#endif /* SAVED_IDS_WORK_WITH_SETEUID */
if (setgroups(saved_egroupslen, saved_egroups) == -1)