From 348154aed47554f3f575a5e23441ae09b0e92a6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Fri, 30 Jun 2006 19:35:17 +0000 Subject: [PATCH] (gss_set_cred_option): free memory on failure git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@17769 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/gssapi/mech/gss_set_cred_option.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/gssapi/mech/gss_set_cred_option.c b/lib/gssapi/mech/gss_set_cred_option.c index 1a6742aaf..3444a3250 100644 --- a/lib/gssapi/mech/gss_set_cred_option.c +++ b/lib/gssapi/mech/gss_set_cred_option.c @@ -73,8 +73,8 @@ gss_set_cred_option (OM_uint32 *minor_status, mc->gmc_mech_oid = &m->gm_mech_oid; mc->gmc_cred = GSS_C_NO_CREDENTIAL; - major_status = m->gm_mech.gm_set_cred_option(minor_status, - &mc->gmc_cred, object, value); + major_status = m->gm_mech.gm_set_cred_option( + minor_status, &mc->gmc_cred, object, value); if (major_status) { free(mc); @@ -83,8 +83,9 @@ gss_set_cred_option (OM_uint32 *minor_status, one_ok = 1; 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 { gssapi_mech_interface m;