From 277e07c8553e2ed20bc95493cdc996be43feb6bd Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Fri, 22 Jun 2007 14:54:39 +0000 Subject: [PATCH] r23588: Some more cleanups and error checks in the krb5 renew function. Guenther --- source/libsmb/clikrb5.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/source/libsmb/clikrb5.c b/source/libsmb/clikrb5.c index be6fb1bda8f..f452766e325 100644 --- a/source/libsmb/clikrb5.c +++ b/source/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) -- 2.11.4.GIT