[5144] in Kerberos

home help back first fref pref prev next nref lref last post

K5B5 status from UIUC

daemon@ATHENA.MIT.EDU (Paul Pomes)
Thu May 11 13:24:40 1995

To: kerberos@MIT.EDU
Date: 11 May 1995 11:55:16 -0500
From: p-pomes@vixen.cso.uiuc.edu (Paul Pomes)
Reply-To: P-Pomes@uiuc.edu


Included are most of the patches I've made so for in installing K5B5 on two
RS6000 machines.  While there are far fewer patches needed for compilation
than under K5B4.3, I am having more problems.  telnet can no longer do
mutual V5 authentication (a CRC integrity error is reported).  Without
mutual auth, encryption won't work.  I can't authenticate with the new
telnetd as it generates a missing key error.  The new login.krb5 doesn't
enable job control.

AIX systems should always link with -lcurses instead of either -ltermlib or
-ltermcap.  This affects telnet and telnetd.


Compilation was done on two RS6000/250 using

./configure --with-cc=xlc --with-ccopts="-qarch=com -O"
	--with-cppopts=-D_ALL_SOURCE --with-krb5-root=/usr/local

One is AIX v4.1.2 and the other is AIX v3.2.5



Either the cast for malloc below or an #include <stdlib.h> would work here.

diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/bsd/kcmd.c krb5-b5/src/appl/bsd/kcmd.c
*** /var/apps/src/security/krb5-b5/src/appl/bsd/kcmd.c	Tue May  2 21:14:11 1995
--- krb5-b5/src/appl/bsd/kcmd.c	Tue May  9 15:00:39 1995
***************
*** 109,115 ****
  	return (-1);
      }
      
!     if ((host_save = malloc(strlen(hp->h_name) + 1)) == NULL) {
          fprintf(stderr,"kcmd: no memory\n");
          return(-1);
      }
--- 109,115 ----
  	return (-1);
      }
      
!     if ((host_save = (char *) malloc(strlen(hp->h_name) + 1)) == NULL) {
          fprintf(stderr,"kcmd: no memory\n");
          return(-1);
      }


In working with K5B4.3 I found not all of our platforms defined ONOCR or
TABDLY.

diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/bsd/krlogin.c krb5-b5/src/appl/bsd/krlogin.c
*** /var/apps/src/security/krb5-b5/src/appl/bsd/krlogin.c	Fri Apr 21 14:11:00 1995
--- krb5-b5/src/appl/bsd/krlogin.c	Wed May 10 15:55:29 1995
***************
*** 1485,1496 ****
--- 1485,1502 ----
  			/* newtty.c_iflag |=  (BRKINT|ISTRIP|IXON|IXANY); */
  			newtty.c_iflag &= ~(IXON|IXANY);
  			newtty.c_iflag |=  (BRKINT|ISTRIP);
+ #ifdef ONOCR
  			newtty.c_oflag &= ~(ONLCR|ONOCR);
+ #else
+ 			newtty.c_oflag &= ~(ONLCR);
+ #endif
  			newtty.c_oflag |=  (OPOST);
  		}
+ #ifdef TABDLY
  		/* preserve tab delays, but turn off XTABS */
  		if ((newtty.c_oflag & TABDLY) == TAB3)
  			newtty.c_oflag &= ~TABDLY;
+ #endif
  
  		if (litout)
  			newtty.c_oflag &= ~OPOST;


On the RS6000s at least, the initial assignments weren't working.  Perhaps
this is a casting problem.  All I can tell is that using the octal constants
worked and the symbolic ones didn't.

diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/bsd/login.c krb5-b5/src/appl/bsd/login.c
*** /var/apps/src/security/krb5-b5/src/appl/bsd/login.c	Fri Apr 28 19:36:13 1995
--- krb5-b5/src/appl/bsd/login.c	Wed May 10 16:22:31 1995
***************
*** 443,460 ****
--- 443,465 ----
  #define CSUSP CSWTCH
  #endif
  	tc.c_cc[VSUSP] = CSUSP;
+ 	tc.c_cc[VSUSP] = '\032';
  #endif
  #ifdef VDSUSP
  	tc.c_cc[VDSUSP] = CDSUSP;
+ 	tc.c_cc[VDSUSP] = '\031';
  #endif
  #ifdef VLNEXT
  	tc.c_cc[VLNEXT] = CLNEXT;
+ 	tc.c_cc[VLNEXT] = '\026';
  #endif
  #ifdef VREPRINT
  	tc.c_cc[VREPRINT] = CRPRNT;
+ 	tc.c_cc[VREPRINT] = '\022';
  #endif
  #ifdef VDISCRD
  	tc.c_cc[VDISCRD] = CFLUSH;
+ 	tc.c_cc[VDISCRD] = '\017';
  #endif
  #ifdef VDISCARD
  #ifndef CDISCARD
***************
*** 464,472 ****
--- 469,479 ----
  #endif
  #ifdef VWERSE
  	tc.c_cc[VWERSE] = CWERASE;
+ 	tc.c_cc[VWERSE] = '\027';
  #endif
  #ifdef VWERASE
          tc.c_cc[VWERASE] = CWERASE;
+ 	tc.c_cc[VWERASE] = '\027';
  #endif
  #ifdef VSTATUS
  #ifdef CSTATUS


Include paths for BSDI

diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/bsd/loginpaths.h krb5-b5/src/appl/bsd/loginpaths.h
*** /var/apps/src/security/krb5-b5/src/appl/bsd/loginpaths.h	Thu Aug  4 18:06:44 1994
--- krb5-b5/src/appl/bsd/loginpaths.h	Mon May  8 15:51:10 1995
***************
*** 53,58 ****
--- 53,63 ----
  #define RPATH "/usr/bin:/bin"
  #endif
  
+ #ifdef __bsdi__
+ #define LPATH "/usr/bin:/bin"
+ #define RPATH "/usr/bin:/bin"
+ #endif
+ 
  #ifdef __alpha
  #ifdef __osf__
  #define LPATH "/usr/bin:."


Another case that can use the cast or an #include <string.h>

diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/mailquery/poplib.c krb5-b5/src/appl/mailquery/poplib.c
*** /var/apps/src/security/krb5-b5/src/appl/mailquery/poplib.c	Mon Mar 27 08:11:54 1995
--- krb5-b5/src/appl/mailquery/poplib.c	Tue May  9 15:21:53 1995
***************
*** 416,422 ****
  char *
  get_errmsg()
  {
!     char *s = strerror(errno);
      
      return(s);
  }
--- 416,422 ----
  char *
  get_errmsg()
  {
!     char *s = (char *) strerror(errno);
      
      return(s);
  }


To enable encryption in telnet, add some -D flags to telnet/*/Makefile.in

diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/telnet/libtelnet/Makefile.in krb5-b5/src/appl/telnet/libtelnet/Makefile.in
*** /var/apps/src/security/krb5-b5/src/appl/telnet/libtelnet/Makefile.in	Thu Apr 27 14:23:37 1995
--- krb5-b5/src/appl/telnet/libtelnet/Makefile.in	Mon May  8 16:16:23 1995
***************
*** 19,25 ****
  #
  #	@(#)Makefile.generic	5.5 (Berkeley) 3/1/91
  #
! AUTH_DEF=-DAUTHENTICATION -DKRB5 -DFORWARD -UNO_LOGIN_F -DLOGIN_CAP_F -DLOGIN_PROGRAM=KRB5_PATH_LOGIN
  LOCALINCLUDES=-I.. -I$(srcdir)/.. -I$(SRCTOP)/include/kerberosIV
  CFLAGS = $(CCOPTS) $(AUTH_DEF) $(DEFS) $(LOCALINCLUDES)
  LIBOBJS=@LIBOBJS@
--- 19,25 ----
  #
  #	@(#)Makefile.generic	5.5 (Berkeley) 3/1/91
  #
! AUTH_DEF=-DAUTHENTICATION -DKRB5 -DFORWARD -UNO_LOGIN_F -DLOGIN_CAP_F -DLOGIN_PROGRAM=KRB5_PATH_LOGIN -DENCRYPTION -DDES_ENCRYPTION
  LOCALINCLUDES=-I.. -I$(srcdir)/.. -I$(SRCTOP)/include/kerberosIV
  CFLAGS = $(CCOPTS) $(AUTH_DEF) $(DEFS) $(LOCALINCLUDES)
  LIBOBJS=@LIBOBJS@


A real typo here.

diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/telnet/libtelnet/kerberos5.c krb5-b5/src/appl/telnet/libtelnet/kerberos5.c
*** /var/apps/src/security/krb5-b5/src/appl/telnet/libtelnet/kerberos5.c	Thu Apr 27 14:53:53 1995
--- krb5-b5/src/appl/telnet/libtelnet/kerberos5.c	Wed May 10 21:17:13 1995
***************
*** 273,279 ****
  	/*
  	 * keep the key in our private storage, but don't use it yet
  	 * ---see kerberos5_reply() below 
! 	 * /
  	if (newkey && (newkey->keytype != KEYTYPE_DES)) {
  	    if (new_creds->keyblock.keytype == KEYTYPE_DES)
  		/* use the session key in credentials instead */
--- 273,279 ----
  	/*
  	 * keep the key in our private storage, but don't use it yet
  	 * ---see kerberos5_reply() below 
! 	 */
  	if (newkey && (newkey->keytype != KEYTYPE_DES)) {
  	    if (new_creds->keyblock.keytype == KEYTYPE_DES)
  		/* use the session key in credentials instead */
diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/telnet/telnet/Makefile.in krb5-b5/src/appl/telnet/telnet/Makefile.in
*** /var/apps/src/security/krb5-b5/src/appl/telnet/telnet/Makefile.in	Fri Apr 28 17:09:16 1995
--- krb5-b5/src/appl/telnet/telnet/Makefile.in	Mon May  8 16:16:49 1995
***************
*** 20,26 ****
  #	@(#)Makefile.generic	5.5 (Berkeley) 3/1/91
  #
  
! AUTH_DEF=-DAUTHENTICATION -DKRB5 -DFORWARD -UNO_LOGIN_F -DLOGIN_CAP_F -DLOGIN_PROGRAM=KRB5_PATH_LOGIN
  OTHERDEFS=-DLINEMODE -DKLUDGELINEMODE -DDIAGNOSTICS -DENV_HACK -DOLD_ENVIRON
  LOCALINCLUDES=-I.. -I$(srcdir)/..
  CFLAGS = $(CCOPTS) $(AUTH_DEF) $(OTHERDEFS) $(DEFS) $(LOCALINCLUDES)
--- 20,26 ----
  #	@(#)Makefile.generic	5.5 (Berkeley) 3/1/91
  #
  
! AUTH_DEF=-DAUTHENTICATION -DKRB5 -DFORWARD -UNO_LOGIN_F -DLOGIN_CAP_F -DLOGIN_PROGRAM=KRB5_PATH_LOGIN -DENCRYPTION
  OTHERDEFS=-DLINEMODE -DKLUDGELINEMODE -DDIAGNOSTICS -DENV_HACK -DOLD_ENVIRON
  LOCALINCLUDES=-I.. -I$(srcdir)/..
  CFLAGS = $(CCOPTS) $(AUTH_DEF) $(OTHERDEFS) $(DEFS) $(LOCALINCLUDES)
diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/telnet/telnetd/Makefile.in krb5-b5/src/appl/telnet/telnetd/Makefile.in
*** /var/apps/src/security/krb5-b5/src/appl/telnet/telnetd/Makefile.in	Fri Apr 28 17:09:45 1995
--- krb5-b5/src/appl/telnet/telnetd/Makefile.in	Mon May  8 16:17:34 1995
***************
*** 20,26 ****
  #	@(#)Makefile.generic	5.5 (Berkeley) 3/1/91
  #
  
! AUTH_DEF=-DAUTHENTICATION -DKRB5 -DFORWARD -UNO_LOGIN_F -DLOGIN_CAP_F -DLOGIN_PROGRAM=KRB5_PATH_LOGIN
  OTHERDEFS=-DKLUDGELINEMODE -DDIAGNOSTICS -DENV_HACK -DOLD_ENVIRON
  LOCALINCLUDES=-I.. -I$(srcdir)/..
  CFLAGS = $(CCOPTS) $(AUTH_DEF) $(OTHERDEFS) $(DEFS) $(LOCALINCLUDES)
--- 20,26 ----
  #	@(#)Makefile.generic	5.5 (Berkeley) 3/1/91
  #
  
! AUTH_DEF=-DAUTHENTICATION -DKRB5 -DFORWARD -UNO_LOGIN_F -DLOGIN_CAP_F -DLOGIN_PROGRAM=KRB5_PATH_LOGIN -DENCRYPTION
  OTHERDEFS=-DKLUDGELINEMODE -DDIAGNOSTICS -DENV_HACK -DOLD_ENVIRON
  LOCALINCLUDES=-I.. -I$(srcdir)/..
  CFLAGS = $(CCOPTS) $(AUTH_DEF) $(OTHERDEFS) $(DEFS) $(LOCALINCLUDES)


The __GNUC__ test isn't sufficient; many ANSI compilers will put a constant
string into a read-only area.  Follow the KISS rule and always use an array
plus a pointer.  The sys/user.h was needed on some platform last time; it's
a placeholder for now.

diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/telnet/telnetd/sys_term.c krb5-b5/src/appl/telnet/telnetd/sys_term.c
*** /var/apps/src/security/krb5-b5/src/appl/telnet/telnetd/sys_term.c	Tue Apr 25 22:00:22 1995
--- krb5-b5/src/appl/telnet/telnetd/sys_term.c	Wed May 10 16:42:23 1995
***************
*** 106,111 ****
--- 106,112 ----
  #define SCMPN(a, b)	strncmp(a, b, sizeof(a))
  
  #ifdef	STREAMS
+ /* #include <sys/user.h> */
  #include <sys/stream.h>
  #endif
  #ifdef __hpux
***************
*** 480,491 ****
   *
   * Returns the file descriptor of the opened pty.
   */
- #ifndef	__GNUC__
- char *line = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
- #else
  static char Xline[] = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
  char *line = Xline;
- #endif
  #ifdef	CRAY
  char *myline = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
  #endif	/* CRAY */
--- 481,488 ----


Strictly an AIXism, but useful for getting debuggable core dumps when needed.

diff -r -c -b /var/apps/src/security/krb5-b5/src/appl/telnet/telnetd/telnetd.c krb5-b5/src/appl/telnet/telnetd/telnetd.c
*** /var/apps/src/security/krb5-b5/src/appl/telnet/telnetd/telnetd.c	Wed May  3 18:52:11 1995
--- krb5-b5/src/appl/telnet/telnetd/telnetd.c	Tue May  9 15:19:54 1995
***************
*** 184,189 ****
--- 184,202 ----
  	int tos = -1;
  #endif
  
+ #ifdef SA_FULLDUMP
+ 	/* AIX does not provide the data section in a core dump by default. */
+ 	struct sigaction handlr;
+ 
+ 	handlr.sa_handler = NULL;
+ 	handlr.sa_flags = SA_FULLDUMP;
+ 	sigaction(SIGQUIT, &handlr, NULL);
+ 	sigaction(SIGILL, &handlr, NULL);
+ 	sigaction(SIGBUS, &handlr, NULL);
+ 	sigaction(SIGSEGV, &handlr, NULL);
+ 	sigaction(SIGIOT, &handlr, NULL);
+ #endif /* SA_FULLDUMP */
+ 
  	pfrontp = pbackp = ptyobuf;
  	netip = netibuf;
  	nfrontp = nbackp = netobuf;


Local preference, we put programs executed by other programs or by cron/init
in /usr/local/libexec.

diff -r -c -b /var/apps/src/security/krb5-b5/src/config/pre.in krb5-b5/src/config/pre.in
*** /var/apps/src/security/krb5-b5/src/config/pre.in	Thu Apr 27 14:25:18 1995
--- krb5-b5/src/config/pre.in	Tue May  9 15:27:29 1995
***************
*** 26,33 ****
  INSTALL_SETUID=$(INSTALL) -s -m 4755
  
  KRB5MANROOT = $(KRB5ROOT)/man
! ADMIN_BINDIR = $(KRB5ROOT)/admin
! SERVER_BINDIR = $(KRB5ROOT)/sbin
  CLIENT_BINDIR = $(KRB5ROOT)/bin
  ADMIN_MANDIR = $(KRB5MANROOT)/man8
  SERVER_MANDIR = $(KRB5MANROOT)/man8
--- 26,33 ----
  INSTALL_SETUID=$(INSTALL) -s -m 4755
  
  KRB5MANROOT = $(KRB5ROOT)/man
! ADMIN_BINDIR = $(KRB5ROOT)/sbin
! SERVER_BINDIR = $(KRB5ROOT)/libexec
  CLIENT_BINDIR = $(KRB5ROOT)/bin
  ADMIN_MANDIR = $(KRB5MANROOT)/man8
  SERVER_MANDIR = $(KRB5MANROOT)/man8


Needed because AIX C complains about both a extern and a declaration in the
same compilation unit.  Other ANSI compilers may choke as well.

diff -r -c -b /var/apps/src/security/krb5-b5/src/include/kerberosIV/kparse.h krb5-b5/src/include/kerberosIV/kparse.h
*** /var/apps/src/security/krb5-b5/src/include/kerberosIV/kparse.h	Fri Apr 28 15:41:29 1995
--- krb5-b5/src/include/kerberosIV/kparse.h	Tue May  9 14:28:50 1995
***************
*** 86,91 ****
--- 86,92 ----
  
  #define PARMCOUNT(P) (sizeof(P)/sizeof(P[0]))
  
+ #ifndef KPARSE_C
  extern int LineNbr;		/* current line # in parameter file */
  
  extern char ErrorMsg[];		/*
***************
*** 94,98 ****
--- 95,100 ----
  				 * returned by fGetKeywordValue or
  				 * fGetParameterSet
  				 */
+ #endif /* KPARSE_C */
  
  #endif /* KPARSE_DEFS */


AIX puts the select() definitions in sys/select.h

diff -r -c -b /var/apps/src/security/krb5-b5/src/kadmin/v5server/srv_net.c krb5-b5/src/kadmin/v5server/srv_net.c
*** /var/apps/src/security/krb5-b5/src/kadmin/v5server/srv_net.c	Fri Apr 28 16:49:24 1995
--- krb5-b5/src/kadmin/v5server/srv_net.c	Tue May  9 14:39:36 1995
***************
*** 39,44 ****
--- 39,48 ----
  #include "kadm5_defs.h"
  #include "adm.h"
  
+ #ifndef FD_SET
+ #include <sys/select.h>
+ #endif
+ 
  #define	MAX_BIND_TRIES	5
  
  /* linux doesn't have SOMAXCONN */


fputs() returns EOF on error, not (char *) NULL .

diff -r -c -b /var/apps/src/security/krb5-b5/src/kadmin.v4/server/acl_files.c krb5-b5/src/kadmin.v4/server/acl_files.c
*** /var/apps/src/security/krb5-b5/src/kadmin.v4/server/acl_files.c	Mon Apr 24 20:24:50 1995
--- krb5-b5/src/kadmin.v4/server/acl_files.c	Mon May  8 16:03:31 1995
***************
*** 494,500 ****
      /* It isn't there yet, copy the file and put it in */
      for(i = 0; i < acl_cache[idx].acl->size; i++) {
  	if(acl_cache[idx].acl->tbl[i] != NULL) {
! 	    if(fputs(acl_cache[idx].acl->tbl[i], new) == NULL
  	       || putc('\n', new) != '\n') {
  		   acl_abort(acl, new);
  		   return(-1);
--- 494,500 ----
      /* It isn't there yet, copy the file and put it in */
      for(i = 0; i < acl_cache[idx].acl->size; i++) {
  	if(acl_cache[idx].acl->tbl[i] != NULL) {
! 	    if(fputs(acl_cache[idx].acl->tbl[i], new) == EOF
  	       || putc('\n', new) != '\n') {
  		   acl_abort(acl, new);
  		   return(-1);


POSIX_SIGNALS might already be defined by the system.

diff -r -c -b /var/apps/src/security/krb5-b5/src/kadmin.v4/server/admin_server.c krb5-b5/src/kadmin.v4/server/admin_server.c
*** /var/apps/src/security/krb5-b5/src/kadmin.v4/server/admin_server.c	Fri Apr 28 23:35:37 1995
--- krb5-b5/src/kadmin.v4/server/admin_server.c	Tue May  9 14:55:29 1995
***************
*** 20,26 ****
--- 20,28 ----
  #endif
  
  /* define it for now */
+ #ifndef POSIX_SIGNALS
  #define POSIX_SIGNALS
+ #endif
  
  #include <stdio.h>
  #include <string.h>


Not sure what is right here.  There are some curious equivalences with
unsigned short to krb5_address FAR * .

diff -r -c -b /var/apps/src/security/krb5-b5/src/kdc/kerberos_v4.c krb5-b5/src/kdc/kerberos_v4.c
*** /var/apps/src/security/krb5-b5/src/kdc/kerberos_v4.c	Sat Mar 18 21:00:29 1995
--- krb5-b5/src/kdc/kerberos_v4.c	Tue May  9 14:51:14 1995
***************
*** 419,425 ****
      /* convert client_fulladdr to client_sockaddr:
       */
      client_sockaddr.sin_family	= AF_INET;
!     client_sockaddr.sin_port	= client_fulladdr->port;
      memcpy( &client_sockaddr.sin_addr, addr->contents, 
  		     sizeof client_sockaddr.sin_addr);
      memset( client_sockaddr.sin_zero, 0, sizeof client_sockaddr.sin_zero);
--- 419,425 ----
      /* convert client_fulladdr to client_sockaddr:
       */
      client_sockaddr.sin_family	= AF_INET;
!     client_sockaddr.sin_port	= (unsigned short) client_fulladdr->port;
      memcpy( &client_sockaddr.sin_addr, addr->contents, 
  		     sizeof client_sockaddr.sin_addr);
      memset( client_sockaddr.sin_zero, 0, sizeof client_sockaddr.sin_zero);
diff -r -c -b /var/apps/src/security/krb5-b5/src/kdc/network.c krb5-b5/src/kdc/network.c
*** /var/apps/src/security/krb5-b5/src/kdc/network.c	Fri Apr 21 23:37:38 1995
--- krb5-b5/src/kdc/network.c	Tue May  9 14:49:47 1995
***************
*** 142,148 ****
  
      request.length = cc;
      request.data = pktbuf;
!     faddr.port = ntohs(saddr.sin_port);
      faddr.address = &addr;
      addr.addrtype = ADDRTYPE_INET;
      addr.length = 4;
--- 142,148 ----
  
      request.length = cc;
      request.data = pktbuf;
!     faddr.port = (krb5_address FAR *) ntohs(saddr.sin_port);
      faddr.address = &addr;
      addr.addrtype = ADDRTYPE_INET;
      addr.length = 4;


See above in regard to combining extern and a declaration in the same compile
unit.

diff -r -c -b /var/apps/src/security/krb5-b5/src/lib/krb4/kparse.c krb5-b5/src/lib/krb4/kparse.c
*** /var/apps/src/security/krb5-b5/src/lib/krb4/kparse.c	Thu Apr 27 10:49:48 1995
--- krb5-b5/src/lib/krb4/kparse.c	Tue May  9 14:27:53 1995
***************
*** 31,37 ****
   * fGetKeywordValue()      parse one "keyword=value" combo
   * fGetToken()             parse one token
   */
! 
  #include "mit-copyright.h"
  #include <stdio.h>
  #include <ctype.h>
--- 31,37 ----
   * fGetKeywordValue()      parse one "keyword=value" combo
   * fGetToken()             parse one token
   */
! #define KPARSE_C
  #include "mit-copyright.h"
  #include <stdio.h>
  #include <ctype.h>


Needed for some prototypes.

diff -r -c -b /var/apps/src/security/krb5-b5/src/lib/krb4/mk_auth.c krb5-b5/src/lib/krb4/mk_auth.c
*** /var/apps/src/security/krb5-b5/src/lib/krb4/mk_auth.c	Thu Apr 27 10:50:07 1995
--- krb5-b5/src/lib/krb4/mk_auth.c	Wed May 10 00:03:15 1995
***************
*** 16,21 ****
--- 16,22 ----
  #include <errno.h>
  #include <stdio.h>
  #include <string.h>
+ #include "krb4-proto.h"		/* Must come after stdio.h */
  
  #define	KRB_SENDAUTH_VERS "AUTHV0.1" /* MUST be KRB_SENDAUTH_VLEN chars */
  /*


AIX's problem with select() again.

diff -r -c -b /var/apps/src/security/krb5-b5/src/lib/krb4/send_to_kdc.c krb5-b5/src/lib/krb4/send_to_kdc.c
*** /var/apps/src/security/krb5-b5/src/lib/krb4/send_to_kdc.c	Thu Apr 27 10:50:55 1995
--- krb5-b5/src/lib/krb4/send_to_kdc.c	Tue May  9 14:40:31 1995
***************
*** 15,20 ****
--- 15,23 ----
  #include "prot.h"
  #include <stdio.h>
  #include <string.h>
+ #ifndef FD_SET
+ #include <sys/select.h>
+ #endif
  
  #define S_AD_SZ sizeof(struct sockaddr_in)
  

NEED_TIME_H is a problem in both lib/krb4 and lib/kdb4.  It needs to be
manually added to the Makefile as -DNEED_TIME_H=1 on systems that need it
(like AIX).

diff -r -c -b /var/apps/src/security/krb5-b5/src/lib/krb4/stime.c krb5-b5/src/lib/krb4/stime.c
*** /var/apps/src/security/krb5-b5/src/lib/krb4/stime.c	Thu Apr 27 10:50:59 1995
--- krb5-b5/src/lib/krb4/stime.c	Tue May  9 16:12:00 1995
***************
*** 10,16 ****
  
  #include "mit-copyright.h"
  #define	DEFINE_SOCKADDR
- #define NEED_TIME_H
  #include "krb.h"
  #include <stdio.h>                      /* for sprintf() */
  
--- 10,15 ----


This was needed to get kprop/kpropd working under K5B4.3, however other
problems haven't allowed testing under B5 as yet.

diff -r -c -b /var/apps/src/security/krb5-b5/src/lib/krb5/keytab/file/ktf_g_ent.c krb5-b5/src/lib/krb5/keytab/file/ktf_g_ent.c
*** /var/apps/src/security/krb5-b5/src/lib/krb5/keytab/file/ktf_g_ent.c	Thu Apr 13 19:53:13 1995
--- krb5-b5/src/lib/krb5/keytab/file/ktf_g_ent.c	Wed May 10 22:55:03 1995
***************
*** 61,66 ****
--- 61,67 ----
  			if (cur_entry.vno < new_entry.vno) {
  				krb5_kt_free_entry(context, &cur_entry);
  				cur_entry = new_entry;
+ 				/* break;	required to make kprop work -pbp */
  			}
  		} else {
  			cur_entry = new_entry;


At UIUC we have 400+ domains from aaao.uiuc.edu to womstd.uiuc.edu with a
realm of UIUC.EDU.  It's far easier NOT to do principal and realm conversion.

diff -r -c -b /var/apps/src/security/krb5-b5/src/lib/krb5/krb/conv_princ.c krb5-b5/src/lib/krb5/krb/conv_princ.c
*** /var/apps/src/security/krb5-b5/src/lib/krb5/krb/conv_princ.c	Thu May  4 23:55:55 1995
--- krb5-b5/src/lib/krb5/krb/conv_princ.c	Mon May  8 16:05:10 1995
***************
*** 56,62 ****
   */
  static struct krb_convert sconv_list[] = {
      "kadmin",	"kadmin",	0,
!     "rcmd",	"host",		DO_REALM_CONVERSION,
      "discuss",	"discuss",	DO_REALM_CONVERSION,
      "rvdsrv",	"rvdsrv",	DO_REALM_CONVERSION,
      "sample",	"sample",	DO_REALM_CONVERSION,
--- 56,63 ----
   */
  static struct krb_convert sconv_list[] = {
      "kadmin",	"kadmin",	0,
! /*  "rcmd",	"host",		DO_REALM_CONVERSION, */
!     "rcmd",	"rcmd",		0,
      "discuss",	"discuss",	DO_REALM_CONVERSION,
      "rvdsrv",	"rvdsrv",	DO_REALM_CONVERSION,
      "sample",	"sample",	DO_REALM_CONVERSION,


Guess what!  SIOCGIFCONF no longer works on some flavors of AIX.  THANK YOU
IBM!!!  We don't get nearly enough gratuitous changes from other vendors.

diff -r -c -b /var/apps/src/security/krb5-b5/src/lib/krb5/os/localaddr.c krb5-b5/src/lib/krb5/os/localaddr.c
*** /var/apps/src/security/krb5-b5/src/lib/krb5/os/localaddr.c	Thu Mar 30 20:05:39 1995
--- krb5-b5/src/lib/krb5/os/localaddr.c	Mon May  8 16:07:32 1995
***************
*** 106,112 ****
--- 106,117 ----
      if (s < 0)
  	return errno;
  
+ #ifdef CSIOCGIFCONF
+     /* Why does IBM change things? */
+     code = ioctl (s, CSIOCGIFCONF, (char *)&ifc);
+ #else
      code = ioctl (s, SIOCGIFCONF, (char *)&ifc);
+ #endif
      if (code < 0) {
  	int retval = errno;
  	closesocket (s);


Previously reported but very helpful.

diff -r -c -b /var/apps/src/security/krb5-b5/src/lib/krb5/os/mk_faddr.c krb5-b5/src/lib/krb5/os/mk_faddr.c
*** /var/apps/src/security/krb5-b5/src/lib/krb5/os/mk_faddr.c	Mon May  1 16:09:36 1995
--- krb5-b5/src/lib/krb5/os/mk_faddr.c	Tue May  9 14:36:08 1995
***************
*** 49,55 ****
  	return EINVAL;
  
      raddr->length = kaddr->length + kport->length + (4 * sizeof(krb5_int32));
!     if (!(raddr->contents = (krb5_octet *)malloc(kaddr->length)))
  	return ENOMEM;
  
      raddr->addrtype = ADDRTYPE_ADDRPORT;
--- 49,55 ----
  	return EINVAL;
  
      raddr->length = kaddr->length + kport->length + (4 * sizeof(krb5_int32));
!     if (!(raddr->contents = (krb5_octet *)malloc(raddr->length)))
  	return ENOMEM;
  
      raddr->addrtype = ADDRTYPE_ADDRPORT;
-- 
So many RFCs, so little time.	-Bill Gaupp <William.V.Gaupp@cdc.com>

home help back first fref pref prev next nref lref last post