(krb5_free_context): clear error string before destroying mutex

(krb5_init_context): don't call krb5_free_context before there is a
mutex initialized


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14358 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2004-11-30 07:02:01 +00:00
parent ce43a2bcc3
commit 899e9ce83d

View File

@@ -191,14 +191,16 @@ krb5_init_context(krb5_context *context)
krb5_error_code ret;
char **files;
*context = NULL;
p = calloc(1, sizeof(*p));
if(!p)
return ENOMEM;
p->mutex = malloc(sizeof(HEIMDAL_MUTEX));
if (p->mutex == NULL) {
ret = ENOMEM;
goto out;
free(p);
return ENOMEM;
}
HEIMDAL_MUTEX_init(p->mutex);
@@ -241,10 +243,9 @@ out:
void KRB5_LIB_FUNCTION
krb5_free_context(krb5_context context)
{
if (context->mutex) {
HEIMDAL_MUTEX_destroy(context->mutex);
free(context->mutex);
}
krb5_clear_error_string(context);
HEIMDAL_MUTEX_destroy(context->mutex);
free(context->mutex);
if (context->default_cc_name)
free(context->default_cc_name);
free(context->etypes);
@@ -254,7 +255,6 @@ krb5_free_context(krb5_context context)
free_error_table (context->et_list);
free(context->cc_ops);
free(context->kt_types);
krb5_clear_error_string(context);
if(context->warn_dest != NULL)
krb5_closelog(context, context->warn_dest);
krb5_set_extra_addresses(context, NULL);