[Bug 184] New: 3.1p1 openssh fails to build a working sshd on Trusted HP-UX 10.26

bugzilla-daemon at mindrot.org bugzilla-daemon at mindrot.org
Tue Mar 26 08:46:38 EST 2002


http://bugzilla.mindrot.org/show_bug.cgi?id=184

           Summary: 3.1p1 openssh fails to build a working sshd on Trusted
                    HP-UX 10.26
           Product: Portable OpenSSH
           Version: -current
          Platform: HPPA
        OS/Version: HP-UX
            Status: NEW
          Severity: major
          Priority: P2
         Component: sshd
        AssignedTo: openssh-unix-dev at mindrot.org
        ReportedBy: dcole at keysoftsys.com


sshd fails work when trying to build on Trusted HP-UX 10.26
----patch-----
diff -cr openssh-3.1p1.orig/acconfig.h openssh-3.1p1/acconfig.h
*** openssh-3.1p1.orig/acconfig.h	Tue Feb 26 16:40:49 2002
--- openssh-3.1p1/acconfig.h	Thu Mar 21 23:19:56 2002
***************
*** 222,227 ****
--- 222,229 ----
  
  /* Defined if in_systm.h needs to be included with netinet/ip.h (HPUX -
<sigh/>) */
  #undef NEED_IN_SYSTM_H
+ /* Defined if on a Trusted HPUX system */
+ #undef TRUSTED_HPUX
  
  /* Define if you have an old version of PAM which takes only one argument */
  /* to pam_strerror */
diff -cr openssh-3.1p1.orig/auth2.c openssh-3.1p1/auth2.c
*** openssh-3.1p1.orig/auth2.c	Tue Feb 26 18:09:43 2002
--- openssh-3.1p1/auth2.c	Fri Mar 22 22:39:22 2002
***************
*** 23,28 ****
--- 23,32 ----
   */
  
  #include "includes.h"
+ #ifdef TRUSTED_HPUX
+ #include <sys/security.h>
+ #include <prot.h>
+ #endif
  RCSID("$OpenBSD: auth2.c,v 1.85 2002/02/24 19:14:59 markus Exp $");
  
  #include <openssl/evp.h>
***************
*** 183,190 ****
--- 187,209 ----
  
  	if (authctxt->attempt++ == 0) {
  		/* setup auth context */
+ #ifdef TRUSTED_HPUX
+ 		struct pr_passwd *pr_pw = NULL;
+ #endif
  		struct passwd *pw = NULL;
  		pw = getpwnam(user);
+ 
+ #ifdef TRUSTED_HPUX
+ 		//Trusted HP-UX passwords are stored differently 
+ 		//you need to call getprpwnam to get the password for
+ 		//a user.
+ 		pr_pw = getprpwnam(pw->pw_name);
+ 		//This dies with a bus error, but isn't
+ 		//this a pointer that should be freed
+ 		//before we reassign?
+ 		//free(pw->pw_passwd);
+ 		pw->pw_passwd=pr_pw->ufld.fd_encrypt;
+ #endif
  		if (pw && allowed_user(pw) && strcmp(service, "ssh-connection")==0) {
  			authctxt->pw = pwcopy(pw);
  			authctxt->valid = 1;
Common subdirectories: openssh-3.1p1.orig/autom4te.cache and
openssh-3.1p1/autom4te.cache
diff -cr openssh-3.1p1.orig/configure.ac openssh-3.1p1/configure.ac
*** openssh-3.1p1.orig/configure.ac	Wed Feb 27 06:12:35 2002
--- openssh-3.1p1/configure.ac	Fri Mar 22 00:08:59 2002
***************
*** 80,85 ****
--- 80,100 ----
  *-*-darwin*)
  	AC_DEFINE(BROKEN_GETADDRINFO)
  	;;
+ *-*-hpux10.26)
+ 	if test -z "$GCC"; then
+ 		CFLAGS="$CFLAGS -Ae"
+ 	fi
+ 	CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE
-D_XOPEN_SOURCE_EXTENDED=1"
+ 	IPADDR_IN_DISPLAY=yes
+ 	AC_DEFINE(USE_PIPES)
+ 	AC_DEFINE(TRUSTED_HPUX)
+ 	AC_DEFINE(LOGIN_NEEDS_UTMPX)
+ 	AC_DEFINE(DISABLE_SHADOW)
+ 	AC_DEFINE(DISABLE_UTMP)
+ 	AC_DEFINE(SPT_TYPE,SPT_PSTAT)
+ 	LIBS="$LIBS -lxnet -lsec -lsecpw"
+ 	disable_ptmx_check=yes
+ 	;;
  *-*-hpux10*)
  	if test -z "$GCC"; then
  		CFLAGS="$CFLAGS -Ae"
***************
*** 1769,1780 ****
  fi
  
  if test -z "$no_dev_ptmx" ; then
! 	AC_CHECK_FILE("/dev/ptmx", 
! 		[
! 			AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX)
! 			have_dev_ptmx=1
! 		]
! 	)
  fi
  AC_CHECK_FILE("/dev/ptc", 
  	[
--- 1784,1797 ----
  fi
  
  if test -z "$no_dev_ptmx" ; then
! 	if test "x$disable_ptmx_check" != "xyes" ; then
! 		AC_CHECK_FILE("/dev/ptmx", 
! 			[
! 				AC_DEFINE_UNQUOTED(HAVE_DEV_PTMX)
! 				have_dev_ptmx=1
! 			]
! 		)
! 	fi
  fi
  AC_CHECK_FILE("/dev/ptc", 
  	[
Common subdirectories: openssh-3.1p1.orig/contrib and openssh-3.1p1/contrib
Common subdirectories: openssh-3.1p1.orig/openbsd-compat and
openssh-3.1p1/openbsd-compat
Common subdirectories: openssh-3.1p1.orig/scard and openssh-3.1p1/scard
diff -cr openssh-3.1p1.orig/session.c openssh-3.1p1/session.c
*** openssh-3.1p1.orig/session.c	Mon Feb 25 15:48:03 2002
--- openssh-3.1p1/session.c	Fri Mar 22 22:56:30 2002
***************
*** 1285,1291 ****
--- 1285,1297 ----
  #ifdef LOGIN_NEEDS_TERM
  		    (s->term ? s->term : "unknown"),
  #endif /* LOGIN_NEEDS_TERM */
+ #ifdef TRUSTED_HPUX
+ 			// the "--" makes login hang on Trusted HP-UX
+ 			// 10.26
+ 		    "-p", "-f", pw->pw_name, (char *)NULL);
+ #else
  		    "-p", "-f", "--", pw->pw_name, (char *)NULL);
+ #endif
  
  		/* Login couldn't be executed, die. */
  
***************
*** 1736,1741 ****
--- 1742,1757 ----
  	 */
  	if (c->ostate != CHAN_OUTPUT_CLOSED)
  		chan_write_failed(c);
+ #ifdef TRUSTED_HPUX
+ 	//Took two lines from a patch at:
+ 	//	<http://www.math.ualberta.ca/imaging/snfs/>
+ 	//by John C. Bowman
+ 	//There is some speculation that you could possibly
+ 	//see data loss from this on usenet.  But without
+ 	//this sshd does not exit on logout.
+ 	if (s->ttyfd != -1 && c->istate == CHAN_INPUT_OPEN)
+ 		chan_read_failed(c);
+ #endif
  	s->chanid = -1;
  }
  
diff -cr openssh-3.1p1.orig/sshd.c openssh-3.1p1/sshd.c
*** openssh-3.1p1.orig/sshd.c	Tue Mar  5 01:31:30 2002
--- openssh-3.1p1/sshd.c	Fri Mar 22 22:32:56 2002
***************
*** 45,50 ****
--- 45,54 ----
  #include <openssl/dh.h>
  #include <openssl/bn.h>
  #include <openssl/md5.h>
+ //Trusted HP-UX
+ #include <sys/security.h>
+ #include <prot.h>
+ //end Trusted HP-UX
  
  #include "ssh.h"
  #include "ssh1.h"
***************
*** 596,601 ****
--- 600,610 ----
  	int startups = 0;
  	Key *key;
  	int ret, key_used = 0;
+ #ifdef TRUSTED_HPUX
+ 	//This call is needed for getprpwnam in auth2.c
+ 	//to initialize the security system for Trusted HP-UX
+ 	set_auth_parameters(ac, av);
+ #endif
  
  	__progname = get_progname(av[0]);
  	init_rng();



------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the openssh-unix-dev mailing list