Author: asomers
Date: Mon Aug 19 14:20:26 2019
New Revision: 351216
URL: https://svnweb.freebsd.org/changeset/base/351216

Log:
  ping6: revert r350857
  
  Some socket options require root privileges to set.  The old code did indeed
  drop privileges at the earliest opportunity.
  
  Submitted by: Ján Sučan <sucan...@gmail.com>
  MFC after:    Never
  Sponsored by: Google, Inc. (Google Summer of Code 2019)
  Differential Revision:        https://reviews.freebsd.org/D21319

Modified:
  head/sbin/ping6/ping6.c

Modified: head/sbin/ping6/ping6.c
==============================================================================
--- head/sbin/ping6/ping6.c     Mon Aug 19 14:11:54 2019        (r351215)
+++ head/sbin/ping6/ping6.c     Mon Aug 19 14:20:26 2019        (r351216)
@@ -663,12 +663,6 @@ main(int argc, char *argv[])
                err(1, "socket srecv");
        freeaddrinfo(res);
 
-       /* revoke root privilege */
-       if (seteuid(getuid()) != 0)
-               err(1, "seteuid() failed");
-       if (setuid(getuid()) != 0)
-               err(1, "setuid() failed");
-
        /* set the source address if specified. */
        if ((options & F_SRCADDR) != 0) {
                /* properly fill sin6_scope_id */
@@ -738,6 +732,12 @@ main(int argc, char *argv[])
                        err(1, "setsockopt(IPV6_RECVRTHDRDSTOPTS)");
 #endif
        }
+
+       /* revoke root privilege */
+       if (seteuid(getuid()) != 0)
+               err(1, "seteuid() failed");
+       if (setuid(getuid()) != 0)
+               err(1, "setuid() failed");
 
        if ((options & F_FLOOD) && (options & F_INTERVAL))
                errx(1, "-f and -i incompatible options");
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to