Blob Blame History Raw
diff -up netkit-rusers-0.17/rpc.rusersd/rusersd.c.orig netkit-rusers-0.17/rpc.rusersd/rusersd.c
--- netkit-rusers-0.17/rpc.rusersd/rusersd.c.orig	2000-07-23 00:09:28.000000000 -0400
+++ netkit-rusers-0.17/rpc.rusersd/rusersd.c	2007-09-15 06:30:12.000000000 -0400
@@ -74,23 +74,6 @@ main(void)
  
 	/* Open syslog */
 	openlog("rpc.rusersd", LOG_PID, LOG_DAEMON);
- 
-	/* Drop privilege */
-	if (getuid() == 0) {
-		struct passwd	*pw;
- 
-		if ((pw = getpwnam("nobody")) == NULL) {
-			syslog(LOG_WARNING, "Unable to find user nobody: %m");
-			exit(1);
-		}
-		if (setgroups(1, &pw->pw_gid) < 0
-		 || setgid(pw->pw_gid) < 0
-		 || setuid(pw->pw_uid) < 0) {
-			syslog(LOG_WARNING, "Failed to drop privilege: %m");
-			exit(1);
-		}
-	}
- 
 	
 	/*
 	 * See if inetd started us
@@ -128,6 +111,23 @@ main(void)
 		syslog(LOG_ERR, "unable to register (RUSERSPROG, RUSERSVERS_IDLE, %s).", proto?"udp":"(inetd)");
 		exit(1);
 	}
+ 
+	/* Drop privilege */
+	if (getuid() == 0) {
+		struct passwd	*pw;
+ 
+		if ((pw = getpwnam("nobody")) == NULL) {
+			syslog(LOG_WARNING, "Unable to find user nobody: %m");
+			exit(1);
+		}
+		if (setgroups(1, &pw->pw_gid) < 0
+		 || setgid(pw->pw_gid) < 0
+		 || setuid(pw->pw_uid) < 0) {
+			syslog(LOG_WARNING, "Failed to drop privilege: %m");
+			exit(1);
+		}
+	}
+ 
 
 	svc_run();
 	syslog(LOG_ERR, "svc_run returned");