diff --git a/src/sbbs3/load_cfg.c b/src/sbbs3/load_cfg.c index 62faaf6d09722ecf4e38f176afb24cb1792d6114..b45938e380ba430b90061c8a225e891170df5bcb 100644 --- a/src/sbbs3/load_cfg.c +++ b/src/sbbs3/load_cfg.c @@ -349,12 +349,14 @@ void prep_cfg(scfg_t* cfg) void free_cfg(scfg_t* cfg) { #if defined(SBBS) && defined(USE_CRYPTLIB) - lock_ssl_cert(); - if (cfg->tls_certificate != -1 && cfg->prepped) { - cryptDestroyContext(cfg->tls_certificate); - cfg->tls_certificate = -1; + if(cfg->prepped) { + lock_ssl_cert(); + if (cfg->tls_certificate != -1 && cfg->prepped) { + cryptDestroyContext(cfg->tls_certificate); + cfg->tls_certificate = -1; + } + unlock_ssl_cert(); } - unlock_ssl_cert(); #endif free_node_cfg(cfg); free_main_cfg(cfg);