4.7p1 password auth broken on SCO OSR6

Roger Cornelius rac at tenzing.org
Sat Sep 15 01:53:37 EST 2007


On 09/13/2007 15:18, Roger Cornelius wrote:
> On 09/10/2007 16:14, Tim Rice wrote:
> > On Mon, 10 Sep 2007, Roger Cornelius wrote:
> > 
> > > openssh 4.7p1
> > > SCO OSR6
> > > 
> > > Password authentication is non-functional.  This seems dependent on
> > > USE_LIBIAF which further depends on HAVE_LIBIAF (in defines.h), but
> > > there is no longer any code in configure to define the latter.  Building
> > 
> > This patch will solve the missing HAVE_LIBIAF
> > ------------
> > --- configure.ac.old	2007-08-15 09:16:29.007892000 -0700
> > +++ configure.ac	2007-09-10 15:54:26.072835157 -0700
> > @@ -2004,7 +2004,10 @@
> >  saved_LIBS="$LIBS"
> >  AC_CHECK_LIB(iaf, ia_openinfo, [
> >  	LIBS="$LIBS -liaf"
> > -	AC_CHECK_FUNCS(set_id, [SSHDLIBS="$SSHDLIBS -liaf"])
> > +	AC_CHECK_FUNCS(set_id, [SSHDLIBS="$SSHDLIBS -liaf"
> > +				AC_DEFINE(HAVE_LIBIAF, 1,
> > +        		[Define if system has libiaf that supports set_id])
> > +				])
> >  ])
> >  LIBS="$saved_LIBS"
> >  
> > ------------
> > 
> > > with HAVE_LIBIAF defined enables password authentication, but only for
> > > non-long (<9 char) passwords, even though UNIXWARE_LONG_PASSWORDS seems
> > > to be defined.  I haven't had time yet to investigate further.
> > 
> > Authentication in the SVR5 space on OpenServer 6 is still lacking.
> > (getluid/setluid)
> > 
> > Probably best to build in the osr5 space for now.
> 
> Your patch fixed password auth for short passwords as expected.
> 
> Needed for long passwords is -DHAVE_SECUREWARE, and -lprot (must be
> searched before -lcrypt).   I also found the following patch to
> openbsd-compat/xcrypt.c was needed though I don't know why.  xcrypt.c
> did not change from 4.6p1 to 4.7p1.  I no longer use password
> authentication so maybe I forgot to test it on 4.6p1.
> 
> This is for udk mode.  I have not tried building in osr mode.

[ prev patch deleted ]

Here's the minimal patch required to get 4.7p1 running with functional
password authentication and long passwords on OSR6 w/MP2 installed (the
patch incorporates the missing HAVE_LIBIAF patch Tim provided above):

-------------
diff -ru orig/openssh-4.7p1/configure.ac openssh-4.7p1/configure.ac
--- orig/openssh-4.7p1/configure.ac	2007-08-10 00:36:12.000000000 -0400
+++ openssh-4.7p1/configure.ac	2007-09-14 10:10:15.768048004 -0400
@@ -672,6 +672,9 @@
 	case "$host" in
 	*-*-sysv5SCO_SV*)	# SCO OpenServer 6.x
 		TEST_SHELL=/u95/bin/sh
+		LIBS="$LIBS -lprot"
+		AC_DEFINE(DISABLE_SHADOW)
+		AC_DEFINE(HAVE_SECUREWARE)
 		AC_DEFINE(BROKEN_LIBIAF, 1,
 			[ia_uinfo routines not supported by OS yet])
 		AC_DEFINE(BROKEN_UPDWTMPX)
@@ -2004,7 +2007,10 @@
 saved_LIBS="$LIBS"
 AC_CHECK_LIB(iaf, ia_openinfo, [
 	LIBS="$LIBS -liaf"
-	AC_CHECK_FUNCS(set_id, [SSHDLIBS="$SSHDLIBS -liaf"])
+	AC_CHECK_FUNCS(set_id, [SSHDLIBS="$SSHDLIBS -liaf"
+				AC_DEFINE(HAVE_LIBIAF, 1,
+        		[Define if system has libiaf that supports set_id])
+				])
 ])
 LIBS="$saved_LIBS"
 
diff -ru orig/openssh-4.7p1/openbsd-compat/xcrypt.c openssh-4.7p1/openbsd-compat/xcrypt.c
--- orig/openssh-4.7p1/openbsd-compat/xcrypt.c	2007-03-26 12:35:28.000000000 -0400
+++ openssh-4.7p1/openbsd-compat/xcrypt.c	2007-09-14 10:05:57.565168003 -0400
@@ -28,21 +28,21 @@
 #include <unistd.h>
 #include <pwd.h>
 
+# ifdef HAVE_SECUREWARE
+#  include <sys/security.h>
+#  include <sys/audit.h>
+#  include <prot.h>
+# else 
 # ifdef HAVE_CRYPT_H
 #  include <crypt.h>
 # endif
+# endif 
 
 # ifdef __hpux
 #  include <hpsecurity.h>
 #  include <prot.h>
 # endif
 
-# ifdef HAVE_SECUREWARE
-#  include <sys/security.h>
-#  include <sys/audit.h>
-#  include <prot.h>
-# endif 
-
 # if defined(HAVE_SHADOW_H) && !defined(DISABLE_SHADOW)
 #  include <shadow.h>
 # endif

-------------
-- 
Roger Cornelius        rac at tenzing.org


More information about the openssh-unix-dev mailing list