diff options
Diffstat (limited to 'source3/libsmb/clikrb5.c')
-rw-r--r-- | source3/libsmb/clikrb5.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/source3/libsmb/clikrb5.c b/source3/libsmb/clikrb5.c index be6fb1bda8f..f452766e325 100644 --- a/source3/libsmb/clikrb5.c +++ b/source3/libsmb/clikrb5.c @@ -1151,6 +1151,11 @@ out: ccache_string = krb5_cc_default_name(context); } + if (!ccache_string) { + ret = EINVAL; + goto done; + } + DEBUG(10,("smb_krb5_renew_ticket: using %s as ccache\n", ccache_string)); /* FIXME: we should not fall back to defaults */ @@ -1175,6 +1180,8 @@ out: { krb5_creds creds; + ZERO_STRUCT(creds); + ret = krb5_get_renewed_creds(context, &creds, client, ccache, CONST_DISCARD(char *, service_string)); if (ret) { DEBUG(10,("smb_krb5_renew_ticket: krb5_get_kdc_cred failed: %s\n", error_message(ret))); @@ -1202,7 +1209,7 @@ out: krb5_realm *client_realm; krb5_creds *creds; - memset(&creds_in, 0, sizeof(creds_in)); + ZERO_STRUCT(creds_in); ret = krb5_copy_principal(context, client, &creds_in.client); if (ret) { @@ -1252,7 +1259,7 @@ out: krb5_free_creds(context, creds); } #else -#error NO_SUITABKE_KRB5_TICKET_RENEW_FUNCTION_AVAILABLE +#error NO_SUITABLE_KRB5_TICKET_RENEW_FUNCTION_AVAILABLE #endif @@ -1260,15 +1267,14 @@ done: if (client) { krb5_free_principal(context, client); } - if (context) { - krb5_free_context(context); - } if (ccache) { krb5_cc_close(context, ccache); } + if (context) { + krb5_free_context(context); + } return ret; - } krb5_error_code smb_krb5_free_addresses(krb5_context context, smb_krb5_addresses *addr) |