[1540] in Kerberos-V5-bugs
DCE 1.1 Interop bug and HPUX porting
daemon@ATHENA.MIT.EDU (John Brezak)
Tue Jul 11 22:11:33 1995
To: krb5-bugs@MIT.EDU
Cc: Douglas Engert <b17783@achilles.ctd.anl.gov>, tytso@MIT.EDU
Date: Tue, 11 Jul 1995 22:11:16 -0400
From: John Brezak <brezak@apollo.hp.com>
[ These changes are releative to krb5 beta5 + Doug's patches ]
This fix allows telnet cred forwarding to work with old format cred caches.
*** ./lib/krb5/ccache/file/fcc_read.c.orig Tue Jul 11 21:48:42 1995
--- ./lib/krb5/ccache/file/fcc_read.c Tue Jul 11 21:48:51 1995
***************
*** 208,214 ****
--- 208,222 ----
CHECK(kret);
if ((data->version == KRB5_FCC_FVNO_1) ||
(data->version == KRB5_FCC_FVNO_2))
+ /*
+ * In this case previous versions of Kerberos (and DCE) defaulted to
+ * ETYPE_DES_CBC_CRC.
+ */
+ #if 0
keyblock->etype = ETYPE_UNKNOWN;
+ #else
+ keyblock->etype = ETYPE_DES_CBC_CRC;
+ #endif
else {
kret = krb5_fcc_read_ui_2(context, id, &ui2);
keyblock->etype = ui2;
If you want to have a cred cache that DCE 1.1 can read, use this patch.
[ DCE 1.0.3 will require that KRB5_FCC_DEFAULT_FVNO is KRB5_FCC_FVNO_1 ]
*** ./lib/krb5/ccache/file/fcc.h.orig Tue Jul 11 21:04:52 1995
--- ./lib/krb5/ccache/file/fcc.h Tue Jul 11 21:31:57 1995
***************
*** 56,62 ****
#define KRB5_FCC_FVNO_2 0x0502 /* krb5 v5, fcc v2 */
#define KRB5_FCC_FVNO_3 0x0503 /* krb5 v5, fcc v3 */
! #define KRB5_FCC_DEFAULT_FVNO KRB5_FCC_FVNO_3
#define FCC_OPEN_AND_ERASE 1
#define FCC_OPEN_RDWR 2
--- 56,62 ----
#define KRB5_FCC_FVNO_2 0x0502 /* krb5 v5, fcc v2 */
#define KRB5_FCC_FVNO_3 0x0503 /* krb5 v5, fcc v3 */
! #define KRB5_FCC_DEFAULT_FVNO KRB5_FCC_FVNO_2 /* Compat with DCE 1.1 */
#define FCC_OPEN_AND_ERASE 1
#define FCC_OPEN_RDWR 2
These are HPUX porting bugs -
- lib/krb4/tf_util.c need to have NEED_UTIMES=1 for HPUX 9.0 (not 10.0)
*** lib/krb4/kuserok.c~ Fri Apr 28 02:02:45 1995
--- lib/krb4/kuserok.c Tue Jul 11 18:51:31 1995
***************
*** 27,33 ****
#include <sys/unistd.h>
#endif
! #ifdef hpux
#define seteuid(e) setresuid(-1,e,-1)
#define setegid(e) setresgid(-1,e,-1)
#endif
--- 27,33 ----
#include <sys/unistd.h>
#endif
! #if defined(hpux) || defined(__hpux)
#define seteuid(e) setresuid(-1,e,-1)
#define setegid(e) setresgid(-1,e,-1)
#endif
*** ./appl/telnet/telnetd/sys_term.c.orig Tue Jul 11 18:53:28 1995
--- ./appl/telnet/telnetd/sys_term.c Tue Jul 11 19:09:57 1995
***************
*** 1251,1257 ****
(void) signal(SIGHUP, SIG_IGN);
(void) ioctl(t, TCVHUP, (char *)0);
(void) signal(SIGHUP, SIG_DFL);
! setpgrp();
#if defined(_SC_CRAY_SECURE_SYS)
if (secflag) {
--- 1251,1257 ----
(void) signal(SIGHUP, SIG_IGN);
(void) ioctl(t, TCVHUP, (char *)0);
(void) signal(SIGHUP, SIG_DFL);
! setpgrp(0, 0);
#if defined(_SC_CRAY_SECURE_SYS)
if (secflag) {
***************
*** 1302,1308 ****
#endif
fatalperror(net, "setsid()");
}
! # ifdef TIOCSCTTY
if (ioctl(t, TIOCSCTTY, (char *)0) < 0)
fatalperror(net, "ioctl(sctty)");
# if defined(CRAY)
--- 1302,1308 ----
#endif
fatalperror(net, "setsid()");
}
! # if defined(TIOCSCTTY) && !defined(__hpux)
if (ioctl(t, TIOCSCTTY, (char *)0) < 0)
fatalperror(net, "ioctl(sctty)");
# if defined(CRAY)
***************
*** 1315,1320 ****
--- 1315,1321 ----
fatalperror(net, "open(/dev/tty)");
# endif
# else
+ # ifndef __hpux
/*
* We get our controlling tty assigned as a side-effect
* of opening up a tty device. But on BSD based systems,
***************
*** 1323,1328 ****
--- 1324,1330 ----
* it out before opening the tty...
*/
(void) setpgrp(0, 0);
+ # endif
close(open(line, O_RDWR));
# endif
if (t != 0)
***************
*** 1390,1396 ****
register int pid = i;
void sigjob P((int));
! setpgrp();
utmp_sig_reset(); /* reset handler to default */
/*
* Create utmp entry for child
--- 1392,1398 ----
register int pid = i;
void sigjob P((int));
! setpgrp(0, 0);
utmp_sig_reset(); /* reset handler to default */
/*
* Create utmp entry for child
*** ./appl/telnet/telnetd/utility.c.orig Tue Jul 11 19:23:12 1995
--- ./appl/telnet/telnetd/utility.c Tue Jul 11 19:25:41 1995
***************
*** 33,38 ****
--- 33,41 ----
/* based on @(#)utility.c 8.1 (Berkeley) 6/4/93 */
+ #ifdef HAVE_UNAME
+ #include <sys/utsname.h>
+ #endif
#define PRINTOPTIONS
#include "telnetd.h"
***************
*** 445,451 ****
--- 448,460 ----
char *slash;
time_t t;
char db[100];
+ #ifdef HAVE_UNAME
+ struct utsname utsinfo;
+ #endif
+ #ifdef HAVE_UNAME
+ uname(&utsinfo);
+ #endif
putlocation = where;
while (*cp) {
***************
*** 481,486 ****
--- 490,512 ----
case '%':
putchr('%');
break;
+ #ifdef HAVE_UNAME
+ case 's':
+ putstr(utsinfo.sysname);
+ break;
+
+ case 'm':
+ putstr(utsinfo.machine);
+ break;
+
+ case 'r':
+ putstr(utsinfo.release);
+ break;
+
+ case 'v':
+ puts(utsinfo.version);
+ break;
+ #endif
}
cp++;
}
*** ./appl/telnet/telnetd/configure.in.orig Tue Jul 11 19:40:06 1995
--- ./appl/telnet/telnetd/configure.in Tue Jul 11 19:40:08 1995
***************
*** 29,34 ****
--- 29,35 ----
AC_HEADER_TIME
AC_CHECK_HEADERS(sys/time.h sys/tty.h)
AC_HAVE_FUNCS(vhangup)
+ AC_HAVE_FUNCS(uname)
AC_FUNC_CHECK(grantpt,AC_DEFINE(STREAMSPTY))
AC_HEADER_CHECK(sac.h,AC_DEFINE(HAS_SAC))
AC_HEADER_CHECK(sys/ptyvar.h,AC_DEFINE(HAS_PTYVAR))
*** ./appl/telnet/telnetd/ext.h.orig Tue Jul 11 19:37:49 1995
--- ./appl/telnet/telnetd/ext.h Tue Jul 11 19:38:37 1995
***************
*** 233,239 ****
--- 233,243 ----
# ifdef ultrix
# define DEFAULT_IM "\r\n\r\nULTRIX (%h) (%t)\r\n\r\r\n\r"
# else
+ # ifdef __hpux
+ # define DEFAULT_IM "\r\nHP-UX %h %r %v %m (%t)\r\n\r\r\n\r"
+ # else
# define DEFAULT_IM "\r\n\r\n4.4 BSD UNIX (%h) (%t)\r\n\r\r\n\r"
+ # endif
# endif
# endif
# endif
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
John Brezak Internet: brezak@ch.hp.com
Hewlett Packard/Apollo Phone: (508) 436-4915
300 Apollo Drive Fax: (508) 436-5140
Chelmsford, Massachusetts, USA