rpms/openssh/devel openssh-4.3p2-pam-session.patch, NONE, 1.1 openssh.spec, 1.93, 1.94

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu Jul 20 11:06:45 UTC 2006


Author: tmraz

Update of /cvs/dist/rpms/openssh/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv20842

Modified Files:
	openssh.spec 
Added Files:
	openssh-4.3p2-pam-session.patch 
Log Message:
* Thu Jul 20 2006 Tomas Mraz <tmraz at redhat.com> - 4.3p2-7
- dropped old ssh obsoletes
- call the pam_session_open/close from the monitor when privsep is
  enabled so it is always called as root (patch by Darren Tucker)


openssh-4.3p2-pam-session.patch:
 auth-pam.c |    6 ++++--
 monitor.c  |    9 +++++++++
 session.c  |    6 +++---
 3 files changed, 16 insertions(+), 5 deletions(-)

--- NEW FILE openssh-4.3p2-pam-session.patch ---
Index: auth-pam.c
===================================================================
RCS file: /usr/local/src/security/openssh/cvs/openssh_cvs/auth-pam.c,v
retrieving revision 1.134
diff -u -p -r1.134 auth-pam.c
--- auth-pam.c	15 May 2006 07:22:33 -0000	1.134
+++ auth-pam.c	22 May 2006 08:50:59 -0000
@@ -573,15 +573,17 @@ static struct pam_conv store_conv = { ss
 void
 sshpam_cleanup(void)
 {
-	debug("PAM: cleanup");
-	if (sshpam_handle == NULL)
+	if (sshpam_handle == NULL || (use_privsep && !mm_is_monitor()))
 		return;
+	debug("PAM: cleanup");
 	pam_set_item(sshpam_handle, PAM_CONV, (const void *)&null_conv);
 	if (sshpam_cred_established) {
+		debug("PAM: deleting credentials");
 		pam_setcred(sshpam_handle, PAM_DELETE_CRED);
 		sshpam_cred_established = 0;
 	}
 	if (sshpam_session_open) {
+		debug("PAM: closing session");
 		pam_close_session(sshpam_handle, PAM_SILENT);
 		sshpam_session_open = 0;
 	}
Index: monitor.c
===================================================================
RCS file: /usr/local/src/security/openssh/cvs/openssh_cvs/monitor.c,v
retrieving revision 1.104
diff -u -p -r1.104 monitor.c
--- monitor.c	21 May 2006 08:26:40 -0000	1.104
+++ monitor.c	22 May 2006 08:37:58 -0000
@@ -354,6 +354,10 @@ monitor_child_preauth(Authctxt *_authctx
 				    MONITOR_REQ_PAM_ACCOUNT, &m);
 				authenticated = mm_answer_pam_account(pmonitor->m_sendfd, &m);
 				buffer_free(&m);
+				if (authenticated) {
+					do_pam_session();
+					do_pam_setcred(0);
+				}
 			}
 #endif
 		}
@@ -1531,6 +1535,11 @@ mm_answer_term(int sock, Buffer *req)
 	/* The child is terminating */
 	session_destroy_all(&mm_session_close);
 
+#ifdef USE_PAM
+	if (options.use_pam)
+		sshpam_cleanup();
+#endif
+
 	while (waitpid(pmonitor->m_pid, &status, 0) == -1)
 		if (errno != EINTR)
 			exit(1);
Index: session.c
===================================================================
RCS file: /usr/local/src/security/openssh/cvs/openssh_cvs/session.c,v
retrieving revision 1.328
diff -u -p -r1.328 session.c
--- session.c	4 May 2006 06:24:34 -0000	1.328
+++ session.c	22 May 2006 08:14:24 -0000
@@ -541,7 +541,7 @@ do_exec_pty(Session *s, const char *comm
 	ttyfd = s->ttyfd;
 
 #if defined(USE_PAM)
-	if (options.use_pam) {
+	if (options.use_pam && !use_privsep) {
 		do_pam_set_tty(s->tty);
 		if (!use_privsep)
 			do_pam_setcred(1);
@@ -1284,7 +1284,7 @@ do_setusercontext(struct passwd *pw)
 		}
 #endif
 # ifdef USE_PAM
-		if (options.use_pam) {
+		if (options.use_pam && !use_privsep) {
 			do_pam_session();
 			do_pam_setcred(0);
 		}
@@ -1326,7 +1326,7 @@ do_setusercontext(struct passwd *pw)
 		 * These will have been wiped by the above initgroups() call.
 		 * Reestablish them here.
 		 */
-		if (options.use_pam) {
+		if (options.use_pam && !use_privsep) {
 			do_pam_session();
 			do_pam_setcred(0);
 		}


Index: openssh.spec
===================================================================
RCS file: /cvs/dist/rpms/openssh/devel/openssh.spec,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -r1.93 -r1.94
--- openssh.spec	17 Jul 2006 14:09:15 -0000	1.93
+++ openssh.spec	20 Jul 2006 11:06:42 -0000	1.94
@@ -58,7 +58,7 @@
 Summary: The OpenSSH implementation of SSH protocol versions 1 and 2
 Name: openssh
 Version: 4.3p2
-%define rel 6
+%define rel 7
 %if %{rescue}
 %define %{rel}rescue
 %else
@@ -92,11 +92,10 @@
 Patch36: openssh-4.3p2-buffer-len.patch
 Patch37: openssh-4.3p2-configure-typo.patch
 Patch38: openssh-4.3p2-askpass-grab-info.patch
+Patch39: openssh-4.3p2-pam-session.patch
 License: BSD
 Group: Applications/Internet
 BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
-Obsoletes: ssh
-Provides: ssh
 %if %{nologin}
 Requires: /sbin/nologin
 %endif
@@ -140,14 +139,10 @@
 Summary: The OpenSSH client applications
 Requires: openssh = %{version}-%{release}
 Group: Applications/Internet
-Obsoletes: ssh-clients
-Provides: ssh-clients
 
 %package server
 Summary: The OpenSSH server daemon
 Group: System Environment/Daemons
-Obsoletes: ssh-server
-Provides: ssh-server
 Requires: openssh = %{version}-%{release}
 Requires(post): chkconfig >= 0.9, /sbin/service
 Requires(pre): /usr/sbin/useradd
@@ -157,8 +152,8 @@
 Summary: A passphrase dialog for OpenSSH and X
 Group: Applications/Internet
 Requires: openssh = %{version}-%{release}
-Obsoletes: ssh-extras, openssh-askpass-gnome
-Provides: ssh-extras, openssh-askpass-gnome
+Obsoletes: openssh-askpass-gnome
+Provides: openssh-askpass-gnome
 
 %description
 SSH (Secure SHell) is a program for logging into and executing
@@ -225,6 +220,7 @@
 %patch36 -p0 -b .buffer-len
 %patch37 -p1 -b .typo
 %patch38 -p1 -b .grab-info
+%patch39 -p0 -b .pam-session
 
 autoreconf
 
@@ -466,6 +462,11 @@
 %endif
 
 %changelog
+* Thu Jul 20 2006 Tomas Mraz <tmraz at redhat.com> - 4.3p2-7
+- dropped old ssh obsoletes
+- call the pam_session_open/close from the monitor when privsep is
+  enabled so it is always called as root (patch by Darren Tucker)
+
 * Mon Jul 17 2006 Tomas Mraz <tmraz at redhat.com> - 4.3p2-6
 - improve selinux patch (by Jan Kiszka)
 - upstream patch for buffer append space error (#191940)




More information about the fedora-cvs-commits mailing list