diff options
author | kevlo <kevlo@FreeBSD.org> | 2007-03-08 03:49:23 +0000 |
---|---|---|
committer | kevlo <kevlo@FreeBSD.org> | 2007-03-08 03:49:23 +0000 |
commit | d98014253f49f491a1e64c4e586869119168ebf5 (patch) | |
tree | 3ae67c11a46fcae52071ce28679d99f01d6ec17c /usr.sbin | |
parent | 24db349b7ebe0140bf02464038066a9ccaaca1cf (diff) | |
download | FreeBSD-src-d98014253f49f491a1e64c4e586869119168ebf5.zip FreeBSD-src-d98014253f49f491a1e64c4e586869119168ebf5.tar.gz |
Use setresuid for simple privilege dropping.
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/traceroute6/traceroute6.c | 8 |
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); |