[95] in Zephyr_Bugs

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

Re: Authentication using a remote realm

daemon@ATHENA.MIT.EDU (marc@ATHENA.MIT.EDU)
Sat Aug 25 00:14:10 1990

From: marc@ATHENA.MIT.EDU
To: Derek Atkins <warlord@MIT.EDU>
Cc: bug-zephyr@MIT.EDU, warlord@MIT.EDU
In-Reply-To: [94] in Zephyr_Bugs
Reply-To: marc@MIT.EDU
Date: Sat, 25 Aug 90 00:13:34 EDT

The problem is not in the hostmanager, it's in the library.  And
here's a proposed fix.  code in /mit/zephyr/tba/marc/lib/ZGetSender.c.
Who wants to audit it?  It's been tested on the vax with WATCH.MIT.EDU
realm tickets and it works fine.

*** lib/ZGetSender.c    Fri Aug 24 22:46:52 1990
--- ../../src/lib/ZGetSender.c  Tue Jun 28 10:34:45 1988
***************
*** 28,34 ****
  {
      struct passwd *pw;
  #ifdef KERBEROS
!     char pname[ANAME_SZ], pinst[INST_SZ], prealm[REALM_SZ];
      static char sender[ANAME_SZ+INST_SZ+REALM_SZ+3] = "";
  #else
      static char sender[128] = "";
--- 28,34 ----
  {
      struct passwd *pw;
  #ifdef KERBEROS
!     char pname[ANAME_SZ], pinst[INST_SZ];
      static char sender[ANAME_SZ+INST_SZ+REALM_SZ+3] = "";
  #else
      static char sender[128] = "";
***************
*** 39,48 ****
        return (sender);

  #ifdef KERBEROS
!     if (krb_get_tf_fullname((char *)TKT_FILE,pname,pinst,prealm) == KSUCCESS)
{
!       (void) sprintf(sender, "%s%s%s@%s", pname, (pinst[0]?".":""),
!                      pinst, prealm);
!       return (sender);
      }
  #endif KERBEROS

--- 39,53 ----
        return (sender);

  #ifdef KERBEROS
!     if (tf_init((char *)TKT_FILE, R_TKT_FIL) == KSUCCESS) {
!       if ((tf_get_pname(pname) == KSUCCESS) &&
!           (tf_get_pinst(pinst) == KSUCCESS)) {
!           (void) sprintf(sender, "%s%s%s@%s", pname, (pinst[0]?".":""),
!                          pinst, __Zephyr_realm);
!           tf_close();
!           return (sender);
!       }
!       tf_close();
      }
  #endif KERBEROS

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