From: Günther Deschner Date: Fri, 22 Jun 2007 11:20:37 +0000 (+0000) Subject: r23582: Fix event based krb5 ticket refreshing in winbindd. X-Git-Tag: samba-misc-tags/initial-v3-0-unstable~137 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aa3511a5b5e6a96a02110a7ad0ab1d43e6d25766;p=thirdparty%2Fsamba.git r23582: Fix event based krb5 ticket refreshing in winbindd. We were incorrectly using the renew_till timestamp instead of the renewed ticket's endtime to calculate the next refreshing date. Guenther --- diff --git a/source/include/includes.h b/source/include/includes.h index 3994d3b3c99..895cc58cece 100644 --- a/source/include/includes.h +++ b/source/include/includes.h @@ -1184,7 +1184,7 @@ BOOL smb_krb5_principal_compare_any_realm(krb5_context context, int cli_krb5_get_ticket(const char *principal, time_t time_offset, DATA_BLOB *ticket, DATA_BLOB *session_key_krb5, uint32 extra_ap_opts, const char *ccname, time_t *tgs_expire); PAC_LOGON_INFO *get_logon_info_from_pac(PAC_DATA *pac_data); -krb5_error_code smb_krb5_renew_ticket(const char *ccache_string, const char *client_string, const char *service_string, time_t *new_start_time); +krb5_error_code smb_krb5_renew_ticket(const char *ccache_string, const char *client_string, const char *service_string, time_t *expire_time); krb5_error_code kpasswd_err_to_krb5_err(krb5_error_code res_code); krb5_error_code smb_krb5_gen_netbios_krb5_address(smb_krb5_addresses **kerb_addr); krb5_error_code smb_krb5_free_addresses(krb5_context context, smb_krb5_addresses *addr); diff --git a/source/libsmb/clikrb5.c b/source/libsmb/clikrb5.c index a668d3b55cb..078706d1dba 100644 --- a/source/libsmb/clikrb5.c +++ b/source/libsmb/clikrb5.c @@ -1134,7 +1134,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; @@ -1189,8 +1189,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); @@ -1247,8 +1247,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);