diff options
Diffstat (limited to 'source/libsmb/clikrb5.c')
-rw-r--r-- | source/libsmb/clikrb5.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/source/libsmb/clikrb5.c b/source/libsmb/clikrb5.c index 7043a26408c..6337b50ce9f 100644 --- a/source/libsmb/clikrb5.c +++ b/source/libsmb/clikrb5.c @@ -1095,7 +1095,7 @@ out: krb5_error_code smb_krb5_renew_ticket(const char *ccache_string, /* FILE:/tmp/krb5cc_0 */ const char *client_string, /* gd@BER.SUSE.DE */ const char *service_string, /* krbtgt/BER.SUSE.DE@BER.SUSE.DE */ - time_t *new_start_time) + time_t *expire_time) { krb5_error_code ret; krb5_context context = NULL; @@ -1150,8 +1150,8 @@ out: ret = krb5_cc_store_cred(context, ccache, &creds); - if (new_start_time) { - *new_start_time = (time_t) creds.times.renew_till; + if (expire_time) { + *expire_time = (time_t) creds.times.endtime; } krb5_free_cred_contents(context, &creds); @@ -1184,7 +1184,11 @@ out: } } else { /* build tgt service by default */ - client_realm = krb5_princ_realm(context, client); + client_realm = krb5_princ_realm(context, creds_in.client); + if (!client_realm) { + ret = ENOMEM; + goto done; + } ret = krb5_make_principal(context, &creds_in.server, *client_realm, KRB5_TGS_NAME, *client_realm, NULL); if (ret) { goto done; @@ -1208,8 +1212,8 @@ out: ret = krb5_cc_store_cred(context, ccache, creds); - if (new_start_time) { - *new_start_time = (time_t) creds->times.renew_till; + if (expire_time) { + *expire_time = (time_t) creds->times.endtime; } krb5_free_cred_contents(context, &creds_in); |