diff --git a/lib/gssapi/krb5/acquire_cred.c b/lib/gssapi/krb5/acquire_cred.c index 4ccad45dd..2b9f3f0eb 100644 --- a/lib/gssapi/krb5/acquire_cred.c +++ b/lib/gssapi/krb5/acquire_cred.c @@ -594,6 +594,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from handle = calloc(1, sizeof(*handle)); if (handle == NULL) { *minor_status = ENOMEM; + krb5_free_context(context); return GSS_S_FAILURE; } @@ -605,6 +606,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from if (ret) { HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex); free(handle); + krb5_free_context(context); return ret; } } @@ -615,6 +617,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from if (ret != GSS_S_COMPLETE) { HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex); krb5_free_principal(context, handle->principal); + krb5_free_context(context); free(handle); return (ret); } @@ -630,6 +633,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from if (ret != GSS_S_COMPLETE) { HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex); krb5_free_principal(context, handle->principal); + krb5_free_context(context); free(handle); return (ret); } @@ -641,6 +645,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from if (ret != GSS_S_COMPLETE) { HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex); krb5_free_principal(context, handle->principal); + krb5_free_context(context); free(handle); return (ret); } @@ -659,6 +664,7 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from gss_release_oid_set(NULL, &handle->mechanisms); HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex); krb5_free_principal(context, handle->principal); + krb5_free_context(context); free(handle); return (ret); }