diff --git a/servers/slapd/main.c b/servers/slapd/main.c index 79a83434db..76f30adf45 100644 --- a/servers/slapd/main.c +++ b/servers/slapd/main.c @@ -963,8 +963,10 @@ stop: /* Setting it to itself decreases refcount, allowing it to be freed * when the LD is freed. */ - ldap_pvt_tls_set_option( slap_tls_ld, LDAP_OPT_X_TLS_CTX, slap_tls_ctx ); - ldap_ld_free( slap_tls_ld, 0, NULL, NULL ); + if ( slap_tls_ld ) { + ldap_pvt_tls_set_option( slap_tls_ld, LDAP_OPT_X_TLS_CTX, slap_tls_ctx ); + ldap_unbind( slap_tls_ld ); + } ldap_pvt_tls_destroy(); #endif