[5386] in Kerberos

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

Re: "su: may not be called from rc script" under eklogin, OSF/1

daemon@ATHENA.MIT.EDU (Scott Hutton)
Wed Jun 14 23:23:48 1995

To: kerberos@MIT.EDU
Date: 15 Jun 1995 03:03:37 GMT
From: shutton@habanero.ucs.indiana.edu (Scott Hutton)

eichin@cygnus.com (Mark W. Eichin) wrote:
| Does that imply that the addition of a setluid() call in login.krb
| would suffice? (CNS has similar code for SCO already:
| 
| src/appl/bsd/login.c:825:
| #ifdef __SCO__
| 	/* this is necessary when C2 mode is enabled, but not otherwise */
| 	setluid((uid_type) pwd->pw_uid);
| #endif
| 
| but the OSF 1/v3.0 man pages indicate that -lsecurity is probably
| needed when using this feature...)
| 
| Perhaps you could try it, and let us know if it works.
| 			_Mark_ <eichin@cygnus.com>
| 			Cygnus Support
| 			Cygnus Network Security <network-security@cygnus.com>
| 			http://www.cygnus.com/data/cns/

Bingo--I just changed the #ifdef to include __alpha, linked with
-lsecurity, and I'm in business.  Thanks much!

BTW, another bug cropped up on our Alphas that we fixed (and should
probably be incorporated back into the source).  There was a "long"
where there should've been a KRB_INT32 in src/lib/krb/rd_req.c.  I've
attached a patch that worked for us.

 -Scott


*** rd_req.c.orig	Wed Jun 14 22:01:18 1995
--- rd_req.c	Wed Jun 14 22:02:48 1995
***************
*** 124,130 ****
      register KTEXT authent;	/* The received message */
      char *service;		/* Service name */
      char *instance;		/* Service instance */
!     long from_addr;		/* Net address of originating host */
      AUTH_DAT *ad;		/* Structure to be filled in */
      char *fn;			/* Filename to get keys from */
  {
--- 124,130 ----
      register KTEXT authent;	/* The received message */
      char *service;		/* Service name */
      char *instance;		/* Service instance */
!     KRB_INT32  from_addr;	/* Net address of originating host */
      AUTH_DAT *ad;		/* Structure to be filled in */
      char *fn;			/* Filename to get keys from */
  {
***************
*** 348,354 ****
      if (krb_ap_req_debug)
          log("Address: %d %d",ad->address,from_addr);
  #endif
!     if (!krb_ignore_ip_address && from_addr && (ad->address != from_addr))
          return(RD_AP_BADD);
  
      /* All seems OK */
--- 348,355 ----
      if (krb_ap_req_debug)
          log("Address: %d %d",ad->address,from_addr);
  #endif
!     if (!krb_ignore_ip_address && from_addr &&
! 	(ad->address != (KRB_INT32) from_addr))
          return(RD_AP_BADD);
  
      /* All seems OK */

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