[2974] in Kerberos-V5-bugs

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

krb5-clients/636: Linux Redhat and /etc/issus.net

daemon@ATHENA.MIT.EDU (Matthew J. Wolf)
Fri Sep 25 08:45:02 1998

Resent-From: gnats@rt-11.MIT.EDU (GNATS Management)
Resent-To: krb5-unassigned@RT-11.MIT.EDU
Resent-Reply-To: krb5-bugs@MIT.EDU, mwolf@clan.premtec.com
Date: Fri, 25 Sep 1998 08:32:57 -0400
From: "Matthew J. Wolf" <mwolf@clan.premtec.com>
Reply-To: mwolf@clan.premtec.com
To: krb5-bugs@MIT.EDU


>Number:         636
>Category:       krb5-clients
>Synopsis:       The displaying of /etc/issus.net at login with telnetd
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    krb5-unassigned
>State:          open
>Class:          change-request
>Submitter-Id:   unknown
>Arrival-Date:   Fri Sep 25 08:34:01 EDT 1998
>Last-Modified:
>Originator:     Matthew J. Wolf
>Organization:
Premiere Communications Inc
X
>Release:        krb5-1.0.5
>Environment:
RedHat Linux Ver. 5.1 /w glibc-2.0.7 
	
System: Linux clan.premtec.com 2.0.35 #1 Thu Jul 23 14:01:04 EDT 1998 i686 unknown
Architecture: i686

>Description:
	 
The default string than is displayed (4.4 BSD UNIX) when some one logs into a 
box runinng telnetd is the string that is displayed by the normal telnetd in
Redhat Linux. I hacked ext.h and utility.c to display the contence of
/etc/issue.net with is what the normal telnetd does under Redhat Linux. I use
the source from the linux source "netkit-telnet-0.10" to make my changes. 
>How-To-Repeat:
	
In ext.h I added another value for DEFAULT_IM .
In utility.c I added " #include <sys/utsname.h> " which was need for a 
 struct of type utsname and with was needed by some cases that I added to
 PUTF().

>Fix:
	

Here are the context diffs.


*** src/appl/telnet/telnetd/ext.h.org	Fri Feb  6 22:41:47 1998
--- src/appl/telnet/telnetd/ext.h	Thu Sep 24 09:00:15 1998
***************
*** 223,241 ****
  #ifndef	DEFAULT_IM
  # ifdef CRAY
  #  define DEFAULT_IM	"\r\n\r\nCray UNICOS (%h) (%t)\r\n\r\r\n\r"
- # else
- #  ifdef sun
- #   ifdef __SVR4
- #    define DEFAULT_IM	"\r\n\r\nUNIX(r) System V Release 4.0 (%h) (%t)\r\n\r\r\n\r"
- #   else
- #    define DEFAULT_IM	"\r\n\r\nSunOS UNIX (%h) (%t)\r\n\r\r\n\r"
- #   endif
  #  else
! #   ifdef ultrix
! #    define DEFAULT_IM	"\r\n\r\nULTRIX (%h) (%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
--- 223,245 ----
  #ifndef	DEFAULT_IM
  # ifdef CRAY
  #  define DEFAULT_IM	"\r\n\r\nCray UNICOS (%h) (%t)\r\n\r\r\n\r"
  #  else
! #  ifdef __linux__
! #    define DEFAULT_IM 	"%i\r\n%s %r (%h) (%t)\r\n\r\n"
! #  else
! #   ifdef sun
! #    ifdef __SVR4
! #     define DEFAULT_IM	"\r\n\r\nUNIX(r) System V Release 4.0 (%h) (%t)\r\n\r\r\n\r"
! #    else
! #     define DEFAULT_IM	"\r\n\r\nSunOS UNIX (%h) (%t)\r\n\r\r\n\r"
! #    endif
  #   else
! #    ifdef ultrix
! #     define DEFAULT_IM	"\r\n\r\nULTRIX (%h) (%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
  #endif


*** src/appl/telnet/telnetd/utility.c.org	Thu Sep 24 09:28:35 1998
--- src/appl/telnet/telnetd/utility.c	Thu Sep 24 10:51:31 1998
***************
*** 33,40 ****
--- 33,43 ----
  
  /* based on @(#)utility.c	8.1 (Berkeley) 6/4/93 */
  
+ #define ISSUE_FILE = "/etc/issue.net"
+ 
  #define PRINTOPTIONS
  #include "telnetd.h"
+ #include <sys/utsname.h>
  
  /*
   * utility functions performing io related tasks
***************
*** 374,379 ****
--- 377,383 ----
  }
  
  char editedhost[32];
+ struct utsname kerninfo; 
  
  	void
  edithost(pat, host)
***************
*** 476,489 ****
  			break;
  
  		case 'd':
! 			(void)time(&t);
! 			(void)strftime(db, sizeof(db), fmtstr, localtime(&t));
! 			putstr(db);
! 			break;
  
- 		case '%':
- 			putchr('%');
- 			break;
  		}
  		cp++;
  	}
--- 480,559 ----
  			break;
  
  		case 'd':
!                         (void)time(&t);
!                         (void)strftime(db, sizeof(db), fmtstr, localtime(&t));
!                         putstr(db);
!                         break;
! 
!                 case '%':
!                         putchr('%');
!                         break;
! 
! 		case 'D':
!                         {
!                                 char    buff[128];
! 
!                                 if (getdomainname(buff,sizeof(buff)) < 0
!                                         || buff[0] == '\0'
!                                         || strcmp(buff, "(none)") == 0)
!                                         break;
!                                 putstr(buff);
!                         }
!                         break;
! 	
! 		case 'i':
!                         {
!                                 char buff[3];
!                                 FILE *fp;
!                                 int p, c;
!                                 
! 				if ((fp = fopen("/etc/issue.net", "r")) == NULL)
!                                         break;
! 	                        p = '\n';
!                                 while ((c = fgetc(fp)) != EOF) {
!                                         if (p == '\n' && c == '#') {
!                                                 do {
!                                                         c = fgetc(fp);
!                                                 } while (c != EOF && c != '\n');
!                                                 continue;
!                                         } else if (c == '%') {
!                                                 buff[0] = c;
!                                                 c = fgetc(fp);
!                                                 if (c == EOF) break;
!                                                 buff[1] = c;
!                                                 buff[2] = '\0';
!                                                 putf(buff, NULL);
!                                         } else {
!                                                 if (c == '\n') putchr('\r');
!                                                 putchr(c);
!                                                 p = c;
!                                         }
!                                 };
!                                 (void) fclose(fp);
!                         }
!                         return; /* ignore remainder of the banner string */ 
! 
! 		case 's':
!                         putstr(kerninfo.sysname);
!                         break;
! 
!                 case 'm':
!                         putstr(kerninfo.machine);
!                         break;
! 
! 		case 'r':
! 			putstr(kerninfo.release);
!                         break;
! 
! 
! 		                case 'v':
! #ifdef __linux__
!                         putstr(kerninfo.version);
! #else
!                         puts(kerninfo.version);
! #endif
!                         break;
  
  		}
  		cp++;
  	}
>Audit-Trail:
>Unformatted:

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