Index: lib/krb5/krb/ChangeLog =================================================================== RCS file: /cvs/krbdev/krb5/src/lib/krb5/krb/ChangeLog,v retrieving revision 5.349 diff -u -r5.349 ChangeLog --- lib/krb5/krb/ChangeLog 2002/09/03 01:13:44 5.349 +++ lib/krb5/krb/ChangeLog 2002/09/11 20:30:20 @@ -1,3 +1,9 @@ +2002-09-11 Sam Hartman + + * fwd_tgt.c (krb5_fwd_tgt_creds): If our initial tickets don't + have addresses, neither should forwarded tickets. Also, noticed + that cc was being used before initialized in some cases; fixed. + 2002-09-02 Ken Raeburn * addr_comp.c, addr_order.c, addr_srch.c, appdefault.c, Index: lib/krb5/krb/fwd_tgt.c =================================================================== RCS file: /cvs/krbdev/krb5/src/lib/krb5/krb/fwd_tgt.c,v retrieving revision 5.18 diff -u -r5.18 fwd_tgt.c --- lib/krb5/krb/fwd_tgt.c 2002/09/03 01:13:45 5.18 +++ lib/krb5/krb/fwd_tgt.c 2002/09/11 20:30:20 @@ -47,7 +47,7 @@ { krb5_replay_data replaydata; krb5_data * scratch = 0; - krb5_address **addrs = 0; + krb5_address **addrs = NULL; krb5_error_code retval; krb5_creds creds, tgt; krb5_creds *pcreds; @@ -74,6 +74,11 @@ memcpy(rhost, server->data[1].data, server->data[1].length); rhost[server->data[1].length] = '\0'; } + if (cc == 0) { + if ((retval = krb5int_cc_default(context, &cc))) + goto errout; + close_cc = 1; + } retval = krb5_auth_con_getkey (context, auth_context, &session_key); if (retval) goto errout; @@ -103,10 +108,6 @@ punt: krb5_free_cred_contents (context, &in); } - - retval = krb5_os_hostaddr(context, rhost, &addrs); - if (retval) - goto errout; if ((retval = krb5_copy_principal(context, client, &creds.client))) goto errout; @@ -121,12 +122,6 @@ 0))) goto errout; - if (cc == 0) { - if ((retval = krb5int_cc_default(context, &cc))) - goto errout; - close_cc = 1; - } - /* fetch tgt directly from cache */ retval = krb5_cc_retrieve_cred (context, cc, KRB5_TC_SUPPORTED_KTYPES, &creds, &tgt); @@ -142,6 +137,12 @@ if (!tgt.ticket.length) { retval = KRB5_NO_TKT_SUPPLIED; goto errout; + } + + if (tgt.addresses && *tgt.addresses) { + retval = krb5_os_hostaddr(context, rhost, &addrs); + if (retval) + goto errout; } creds.keyblock.enctype = enctype;