[3052] in Kerberos-V5-bugs
pending/702: Krb5 + CDE + Solaris = core
daemon@ATHENA.MIT.EDU (Mike Busse)
Mon Mar 15 18:00:05 1999
Resent-From: gnats@rt-11.MIT.EDU (GNATS Management)
Resent-To: gnats-admin@rt-11.MIT.EDU
Resent-Reply-To: krb5-bugs@MIT.EDU, Mike Busse <mbusse@arl.mil>
Date: Mon, 15 Mar 1999 17:54:03 -0500 (EST)
From: Mike Busse <mbusse@arl.mil>
To: krb5-bugs@MIT.EDU
>Number: 702
>Category: pending
>Synopsis: Krb5 + CDE + Solaris = core
>Confidential: yes
>Severity: serious
>Priority: medium
>Responsible: gnats-admin
>State: open
>Class: sw-bug
>Submitter-Id: unknown
>Arrival-Date: Mon Mar 15 18:00:00 EST 1999
>Last-Modified:
>Originator:
>Organization:
>Release:
>Environment:
>Description:
>How-To-Repeat:
>Fix:
>Audit-Trail:
>Unformatted:
Hi,
I thought I'd email you about a problem we had with CDE running
Solaris 2.5.1 and up, along with krb5 v1.5. The function used in
krb5/src/appl/bsd/krlogin.c: cfgetospeed line returns an index value
of 29, where the array only goes to 16. 24 is defined in Solaris'
/usr/include/sys/termios.h.
The fix:
blaze /src/krb5/src/appl/bsd 5 # diff -c krlogin.c krlogin.c.orig
*** krlogin.c Mon Mar 8 18:59:14 1999
--- krlogin.c.orig Sat Oct 24 11:04:06 1998
***************
*** 208,223 ****
#else
char *speeds[] =
{ "0", "50", "75", "110", "134", "150", "200", "300",
! "600", "1200", "1800", "2400", "4800", "9600", "19200", "38400",
! "57600", "76800", "115200", "153600", "230400", "307200", "460800" };
#endif
char term[256] = "network";
- #if defined(hpux) || defined(__hpux)
#define MAX_SPEED_LENGTH (sizeof("38400") - 1)
- #else
- #define MAX_SPEED_LENGTH (sizeof("460800") - 1)
- #endif /* MAX_SPEED_LENGTH */
#define MAX_TERM_LENGTH (sizeof(term) - 1 - MAX_SPEED_LENGTH - 1)
#ifndef POSIX_SIGNALS
--- 208,218 ----
#else
char *speeds[] =
{ "0", "50", "75", "110", "134", "150", "200", "300",
! "600", "1200", "1800", "2400", "4800", "9600", "19200", "38400" };
#endif
char term[256] = "network";
#define MAX_SPEED_LENGTH (sizeof("38400") - 1)
#define MAX_TERM_LENGTH (sizeof(term) - 1 - MAX_SPEED_LENGTH - 1)
#ifndef POSIX_SIGNALS
***************
*** 527,534 ****
#ifdef POSIX_TERMIOS
if (tcgetattr(0, &ttyb) == 0) {
int ospeed = cfgetospeed (&ttyb);
- if ( ospeed > MAX_SPEED_LENGTH )
- ospeed = MAX_SPEED_LENGTH;
(void) strcat(term, "/");
if (ospeed >= 50)
--- 522,527 ----
*** The most important line here is:
- if ( ospeed > MAX_SPEED_LENGTH )
- ospeed = MAX_SPEED_LENGTH;
Mike.
-----------------------------------------------------------------------------
Michael H. Busse Email: mbusse@arl.mil
ARL/CICC/ARD/SAB/USAT Vmail: 410-278-0615
Business Plus Corporation Smail: U.S. Army Research Laboratory
Contractor ATTN: AMSRL-CI-AS (M. Busse - B328, Rm15)
#include <stddisclm.h> Aberdeen Proving Ground, MD 21005-5067
-----------------------------------------------------------------------------