summaryrefslogtreecommitdiffstats
path: root/usr.sbin/traceroute6
diff options
context:
space:
mode:
authorkevlo <kevlo@FreeBSD.org>2007-03-08 03:49:23 +0000
committerkevlo <kevlo@FreeBSD.org>2007-03-08 03:49:23 +0000
commitd98014253f49f491a1e64c4e586869119168ebf5 (patch)
tree3ae67c11a46fcae52071ce28679d99f01d6ec17c /usr.sbin/traceroute6
parent24db349b7ebe0140bf02464038066a9ccaaca1cf (diff)
downloadFreeBSD-src-d98014253f49f491a1e64c4e586869119168ebf5.zip
FreeBSD-src-d98014253f49f491a1e64c4e586869119168ebf5.tar.gz
Use setresuid for simple privilege dropping.
Diffstat (limited to 'usr.sbin/traceroute6')
-rw-r--r--usr.sbin/traceroute6/traceroute6.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/usr.sbin/traceroute6/traceroute6.c b/usr.sbin/traceroute6/traceroute6.c
index a854bde..b304f14 100644
--- a/usr.sbin/traceroute6/traceroute6.c
+++ b/usr.sbin/traceroute6/traceroute6.c
@@ -373,6 +373,7 @@ main(argc, argv)
u_long probe, hops, lport;
struct hostent *hp;
size_t size;
+ uid_t uid;
/*
* Receive ICMP
@@ -383,8 +384,11 @@ main(argc, argv)
}
/* revoke privs */
- seteuid(getuid());
- setuid(getuid());
+ uid = getuid();
+ if (setresuid(uid, uid, uid) == -1) {
+ perror("setresuid");
+ exit(1);
+ }
size = sizeof(i);
(void) sysctl(mib, sizeof(mib)/sizeof(mib[0]), &i, &size, NULL, 0);
OpenPOWER on IntegriCloud