summary refs log tree commit diff
path: root/inet
diff options
context:
space:
mode:
Diffstat (limited to 'inet')
-rw-r--r--inet/rcmd.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/inet/rcmd.c b/inet/rcmd.c
index f13a2e6bad..354ff35994 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -339,10 +339,10 @@ again:
 		 * reading an NFS mounted file system, can't read files that
 		 * are protected read/write owner only.
 		 */
-		uid = geteuid();
-		(void)seteuid(pwd->pw_uid);
-		hostf = fopen(pbuf, "r");
-		(void)seteuid(uid);
+		if (euidaccess (pbuf, R_OK) != 0)
+		  hostf = NULL;
+		else
+		  hostf = fopen(pbuf, "r");
 
 		if (hostf == NULL)
 			return (-1);
@@ -390,7 +390,7 @@ __ivaliduser(hostf, raddr, luser, ruser)
 	size_t bufsize = 0;
 	ssize_t nread;
 
-	while ((nread = getline (&buf, &bufsize, hostf)) > 0) {
+	while ((nread = __getline (&buf, &bufsize, hostf)) > 0) {
 		buf[bufsize - 1] = '\0'; /* Make sure it's terminated.  */
 		p = buf;
 		while (*p != '\n' && *p != ' ' && *p != '\t' && *p != '\0') {