From mbusse@arl.mil Mon Mar 15 17:59:12 1999 Received: from MIT.EDU (PACIFIC-CARRIER-ANNEX.MIT.EDU [18.69.0.28]) by rt-11.MIT.EDU (8.7.5/8.7.3) with SMTP id RAA13390 for ; Mon, 15 Mar 1999 17:59:07 -0500 Received: from blaze.arl.mil by MIT.EDU with SMTP id AA06541; Mon, 15 Mar 99 17:59:49 EST Received: from blaze.arl.mil by blaze.arl.mil id aa15245; 15 Mar 1999 17:54 EST Message-Id: Date: Mon, 15 Mar 1999 17:54:03 -0500 (EST) From: Mike Busse To: krb5-bugs@MIT.EDU Subject: Krb5 + CDE + Solaris = core >Number: 702 >Category: krb5-appl >Synopsis: Krb5 + CDE + Solaris = core >Confidential: no >Severity: serious >Priority: medium >Responsible: krb5-unassigned >State: open >Class: sw-bug >Submitter-Id: unknown >Arrival-Date: Mon Mar 15 18:00:00 EST 1999 >Last-Modified: Thu Jul 5 20:56:10 EDT 2001 >Originator: Mike Busse >Organization: >Release: >Environment: >Description: 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 Aberdeen Proving Ground, MD 21005-5067 ----------------------------------------------------------------------------- >How-To-Repeat: >Fix: >Audit-Trail: Responsible-Changed-From-To: gnats-admin->krb5-unassigned Responsible-Changed-By: raeburn Responsible-Changed-When: Thu Jul 5 20:56:00 2001 Responsible-Changed-Why: reformat >Unformatted: