[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#6788) Only one reference when ldap_open_internal_connection



Full_Name: Jiri Giesl
Version: 2.3.43
OS: Linux
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (212.111.5.220)


We tried to estalish connection to LDAP server by our own (because of proxy
usage) and then use "ldap_open_internal_connection" function to initialize
internal structures of openldap. After successful SASL binding we realized that
the connection to LDAP server has been closed. We found out that there is
checking for reference count in "wait4msg" function (result.c file) this way:

if ( lc->lconn_refcnt <= 1 )

During classic initialization and SASL binding we get 2 references, however when
using "ldap_open_internal_connection" and SASL binding we get only 1 reference.

We realized that in "ldap_open_defconn" (function which is called for
establishing of a new connection) there is reference counter which is increased
this way:

++ld->ld_defconn->lconn_refcnt;	/* so it never gets closed/freed */

When we added this incrementation also into "ldap_open_internal_connection"
(open.c file), everything goes well (it is obvious).

Are we wrong or this is really minor bug (missing incrementation of reference
counter in "ldap_open_internal_connection")?