gss: Fix double-free in acquire_from
This commit is contained in:
@@ -594,7 +594,6 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from
|
|||||||
handle = calloc(1, sizeof(*handle));
|
handle = calloc(1, sizeof(*handle));
|
||||||
if (handle == NULL) {
|
if (handle == NULL) {
|
||||||
*minor_status = ENOMEM;
|
*minor_status = ENOMEM;
|
||||||
krb5_free_context(context);
|
|
||||||
return GSS_S_FAILURE;
|
return GSS_S_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -606,7 +605,6 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from
|
|||||||
if (ret) {
|
if (ret) {
|
||||||
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
||||||
free(handle);
|
free(handle);
|
||||||
krb5_free_context(context);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -617,7 +615,6 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from
|
|||||||
if (ret != GSS_S_COMPLETE) {
|
if (ret != GSS_S_COMPLETE) {
|
||||||
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
||||||
krb5_free_principal(context, handle->principal);
|
krb5_free_principal(context, handle->principal);
|
||||||
krb5_free_context(context);
|
|
||||||
free(handle);
|
free(handle);
|
||||||
return (ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
@@ -633,7 +630,6 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from
|
|||||||
if (ret != GSS_S_COMPLETE) {
|
if (ret != GSS_S_COMPLETE) {
|
||||||
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
||||||
krb5_free_principal(context, handle->principal);
|
krb5_free_principal(context, handle->principal);
|
||||||
krb5_free_context(context);
|
|
||||||
free(handle);
|
free(handle);
|
||||||
return (ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
@@ -645,7 +641,6 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from
|
|||||||
if (ret != GSS_S_COMPLETE) {
|
if (ret != GSS_S_COMPLETE) {
|
||||||
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
||||||
krb5_free_principal(context, handle->principal);
|
krb5_free_principal(context, handle->principal);
|
||||||
krb5_free_context(context);
|
|
||||||
free(handle);
|
free(handle);
|
||||||
return (ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
@@ -664,7 +659,6 @@ OM_uint32 GSSAPI_CALLCONV _gsskrb5_acquire_cred_from
|
|||||||
gss_release_oid_set(NULL, &handle->mechanisms);
|
gss_release_oid_set(NULL, &handle->mechanisms);
|
||||||
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
HEIMDAL_MUTEX_destroy(&handle->cred_id_mutex);
|
||||||
krb5_free_principal(context, handle->principal);
|
krb5_free_principal(context, handle->principal);
|
||||||
krb5_free_context(context);
|
|
||||||
free(handle);
|
free(handle);
|
||||||
return (ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user