From 899e9ce83d32b640ff904f3fd935b8b0c71a5e2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 30 Nov 2004 07:02:01 +0000 Subject: [PATCH] (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 --- lib/krb5/context.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/krb5/context.c b/lib/krb5/context.c index 7f1651b17..66eb4d6eb 100644 --- a/lib/krb5/context.c +++ b/lib/krb5/context.c @@ -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);