vishalmishra434 / rpms / openssh

Forked from rpms/openssh a month ago
Clone
Jan F. Chadima d2ed53
diff -up pam_ssh_agent_auth-0.9.2/iterate_ssh_agent_keys.c.seteuid pam_ssh_agent_auth-0.9.2/iterate_ssh_agent_keys.c
Jan F. Chadima d2ed53
--- pam_ssh_agent_auth-0.9.2/iterate_ssh_agent_keys.c.seteuid	2010-09-08 08:54:29.000000000 +0200
Jan F. Chadima d2ed53
+++ pam_ssh_agent_auth-0.9.2/iterate_ssh_agent_keys.c	2010-11-22 08:38:05.000000000 +0100
Jan F. Chadima d2ed53
@@ -131,13 +131,17 @@ ssh_get_authentication_socket_for_uid(ui
Jan F. Chadima d2ed53
 	}
Jan F. Chadima d2ed53
 
Jan F. Chadima d2ed53
 	errno = 0; 
Jan F. Chadima d2ed53
-	seteuid(uid); /* To ensure a race condition is not used to circumvent the stat
Jan F. Chadima d2ed53
-	             above, we will temporarily drop UID to the caller */
Jan F. Chadima d2ed53
+	/* To ensure a race condition is not used to circumvent the stat
Jan F. Chadima d2ed53
+	   above, we will temporarily drop UID to the caller */
Jan F. Chadima d2ed53
+	if (seteuid(uid) == -1) {
Jan F. Chadima d2ed53
+		error("seteuid(%lu) failed", (unsigned long) uid);
Jan F. Chadima d2ed53
+		return -1;
Jan F. Chadima d2ed53
+	}
Jan F. Chadima d2ed53
 	if (connect(sock, (struct sockaddr *)&sunaddr, sizeof sunaddr) < 0) {
Jan F. Chadima d2ed53
 		close(sock);
Jan F. Chadima d2ed53
-        if(errno == EACCES)
Jan F. Chadima d2ed53
-		fatal("MAJOR SECURITY WARNING: uid %lu made a deliberate and malicious attempt to open an agent socket owned by another user", (unsigned long) uid);
Jan F. Chadima d2ed53
-		return -1;
Jan F. Chadima d2ed53
+		sock = -1;
Jan F. Chadima d2ed53
+		if(errno == EACCES)
Jan F. Chadima d2ed53
+			fatal("MAJOR SECURITY WARNING: uid %lu made a deliberate and malicious attempt to open an agent socket owned by another user", (unsigned long) uid);
Jan F. Chadima d2ed53
 	}
Jan F. Chadima d2ed53
 
Jan F. Chadima d2ed53
 	seteuid(0); /* we now continue the regularly scheduled programming */