(gss_set_cred_option): free memory on failure

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17769 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2006-06-30 19:35:17 +00:00
parent 850616a934
commit 348154aed4

View File

@@ -73,8 +73,8 @@ gss_set_cred_option (OM_uint32 *minor_status,
mc->gmc_mech_oid = &m->gm_mech_oid; mc->gmc_mech_oid = &m->gm_mech_oid;
mc->gmc_cred = GSS_C_NO_CREDENTIAL; mc->gmc_cred = GSS_C_NO_CREDENTIAL;
major_status = m->gm_mech.gm_set_cred_option(minor_status, major_status = m->gm_mech.gm_set_cred_option(
&mc->gmc_cred, object, value); minor_status, &mc->gmc_cred, object, value);
if (major_status) { if (major_status) {
free(mc); free(mc);
@@ -83,8 +83,9 @@ gss_set_cred_option (OM_uint32 *minor_status,
one_ok = 1; one_ok = 1;
SLIST_INSERT_HEAD(&cred->gc_mc, mc, gmc_link); SLIST_INSERT_HEAD(&cred->gc_mc, mc, gmc_link);
} }
if (one_ok)
*cred_handle = (gss_cred_id_t)cred; *cred_handle = (gss_cred_id_t)cred;
if (!one_ok)
gss_release_cred(&minor_status, cred_handle);
} else { } else {
gssapi_mech_interface m; gssapi_mech_interface m;