(get_cred_from_kdc_flags): allocate and free `*out_creds' properly

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6065 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1999-05-03 02:08:51 +00:00
parent 7c2cf73058
commit 17c9fd68e4

View File

@@ -644,14 +644,15 @@ get_cred_from_kdc_flags(krb5_context context,
*out_creds = calloc(1, sizeof(**out_creds)); *out_creds = calloc(1, sizeof(**out_creds));
if(*out_creds == NULL) if(*out_creds == NULL)
ret = ENOMEM; ret = ENOMEM;
else else {
ret = get_cred_kdc_la(context, ccache, flags, ret = get_cred_kdc_la(context, ccache, flags,
in_creds, &tgts, *out_creds); in_creds, &tgts, *out_creds);
if (ret)
free (*out_creds);
}
krb5_free_creds_contents(context, &tgts); krb5_free_creds_contents(context, &tgts);
krb5_free_principal(context, tmp_creds.server); krb5_free_principal(context, tmp_creds.server);
krb5_free_principal(context, tmp_creds.client); krb5_free_principal(context, tmp_creds.client);
if(ret)
free(*out_creds);
return ret; return ret;
} }
} }
@@ -696,7 +697,15 @@ get_cred_from_kdc_flags(krb5_context context,
krb5_free_principal(context, tmp_creds.server); krb5_free_principal(context, tmp_creds.server);
krb5_free_principal(context, tmp_creds.client); krb5_free_principal(context, tmp_creds.client);
ret = get_cred_kdc_la(context, ccache, flags, in_creds, tgt, *out_creds); *out_creds = calloc(1, sizeof(**out_creds));
if(*out_creds == NULL)
ret = ENOMEM;
else {
ret = get_cred_kdc_la(context, ccache, flags,
in_creds, tgt, *out_creds);
if (ret)
free (*out_creds);
}
krb5_free_creds(context, tgt); krb5_free_creds(context, tgt);
return ret; return ret;
} }