Just for extra paranoia's sake?  Against 5.4 sources.

-peter

diff -u -p -u -r1.82 traceroute.c
--- traceroute.c        10 Feb 2012 23:05:54 -0000      1.82
+++ traceroute.c        7 Nov 2013 14:36:44 -0000
@@ -310,6 +310,7 @@ main(int argc, char *argv[])
        const char *errstr;
        long l;
        uid_t uid;
+       gid_t gid;
        u_int rtableid;

        if ((s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) < 0)
@@ -319,6 +320,14 @@ main(int argc, char *argv[])

        /* revoke privs */
        uid = getuid();
+       gid = getgid();
+
+       if (setgroups(1, &gid) == -1)
+               err(1, "setgroups");
+
+       if (setresgid(gid, gid, gid) == -1)
+               err(1, "setresgid");
+
        if (setresuid(uid, uid, uid) == -1)
                err(1, "setresuid");

Reply via email to