[5144] in Kerberos
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>