diff --git a/lib/krb5/context.c b/lib/krb5/context.c index 66eb4d6eb..e2f5a9053 100644 --- a/lib/krb5/context.c +++ b/lib/krb5/context.c @@ -243,9 +243,6 @@ out: void KRB5_LIB_FUNCTION krb5_free_context(krb5_context context) { - 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); @@ -255,10 +252,15 @@ 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); krb5_set_ignore_addresses(context, NULL); + if (context->mutex != NULL) { + HEIMDAL_MUTEX_destroy(context->mutex); + free(context->mutex); + } free(context); }