From: Kurt Zeilenga Date: Wed, 17 Jan 2001 05:27:21 +0000 (+0000) Subject: Avoid premature free X-Git-Tag: OPENLDAP_REL_ENG_2_0_8~66 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6aadd5186111a58f785e0145406053c43bc29a95;p=thirdparty%2Fopenldap.git Avoid premature free --- diff --git a/libraries/libldap/open.c b/libraries/libldap/open.c index 87f2bc2e76..a86b872e0c 100644 --- a/libraries/libldap/open.c +++ b/libraries/libldap/open.c @@ -329,9 +329,16 @@ ldap_int_open_connection( if (ld->ld_options.ldo_tls_mode == LDAP_OPT_X_TLS_HARD || strcmp( srv->lud_scheme, "ldaps" ) == 0 ) { + LDAPConn *savedefconn = ld->ld_defconn; + ++conn->lconn_refcnt; /* avoid premature free */ + ld->ld_defconn = conn; + rc = ldap_pvt_tls_start( ld, conn->lconn_sb, ld->ld_options.ldo_tls_ctx ); + ld->ld_defconn = savedefconn; + --conn->lconn_refcnt; + if (rc != LDAP_SUCCESS) { return -1; }