diff --git a/kuser/kinit.c b/kuser/kinit.c index abc08476b..e35ec6971 100644 --- a/kuser/kinit.c +++ b/kuser/kinit.c @@ -327,10 +327,13 @@ do_524init(krb5_context context, krb5_ccache ccache, krb5_cc_get_principal(context, ccache, &client); memset(&in_creds, 0, sizeof(in_creds)); ret = get_server(context, client, server, &in_creds.server); - krb5_free_principal(context, client); - if(ret) + if(ret) { + krb5_free_principal(context, client); return ret; + } + in_creds.client = client; ret = krb5_get_credentials(context, 0, ccache, &in_creds, &real_creds); + krb5_free_principal(context, client); krb5_free_principal(context, in_creds.server); if(ret) return ret;