mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
ITS#2982 ok, we should NULL out lc after all...
This commit is contained in:
parent
d831315024
commit
62d050a0bd
@ -73,7 +73,7 @@ static int ldap_mark_abandoned LDAP_P(( LDAP *ld, ber_int_t msgid ));
|
|||||||
static int wait4msg LDAP_P(( LDAP *ld, ber_int_t msgid, int all, struct timeval *timeout,
|
static int wait4msg LDAP_P(( LDAP *ld, ber_int_t msgid, int all, struct timeval *timeout,
|
||||||
LDAPMessage **result ));
|
LDAPMessage **result ));
|
||||||
static ber_tag_t try_read1msg LDAP_P(( LDAP *ld, ber_int_t msgid,
|
static ber_tag_t try_read1msg LDAP_P(( LDAP *ld, ber_int_t msgid,
|
||||||
int all, Sockbuf *sb, LDAPConn *lc, LDAPMessage **result ));
|
int all, Sockbuf *sb, LDAPConn **lc, LDAPMessage **result ));
|
||||||
static ber_tag_t build_result_ber LDAP_P(( LDAP *ld, BerElement **bp, LDAPRequest *lr ));
|
static ber_tag_t build_result_ber LDAP_P(( LDAP *ld, BerElement **bp, LDAPRequest *lr ));
|
||||||
static void merge_error_info LDAP_P(( LDAP *ld, LDAPRequest *parentr, LDAPRequest *lr ));
|
static void merge_error_info LDAP_P(( LDAP *ld, LDAPRequest *parentr, LDAPRequest *lr ));
|
||||||
static LDAPMessage * chkResponseList LDAP_P(( LDAP *ld, int msgid, int all));
|
static LDAPMessage * chkResponseList LDAP_P(( LDAP *ld, int msgid, int all));
|
||||||
@ -320,7 +320,7 @@ wait4msg(
|
|||||||
if ( ber_sockbuf_ctrl( lc->lconn_sb,
|
if ( ber_sockbuf_ctrl( lc->lconn_sb,
|
||||||
LBER_SB_OPT_DATA_READY, NULL ) ) {
|
LBER_SB_OPT_DATA_READY, NULL ) ) {
|
||||||
rc = try_read1msg( ld, msgid, all, lc->lconn_sb,
|
rc = try_read1msg( ld, msgid, all, lc->lconn_sb,
|
||||||
lc, result );
|
&lc, result );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -374,7 +374,8 @@ wait4msg(
|
|||||||
ldap_is_read_ready( ld,
|
ldap_is_read_ready( ld,
|
||||||
lc->lconn_sb )) {
|
lc->lconn_sb )) {
|
||||||
rc = try_read1msg( ld, msgid, all,
|
rc = try_read1msg( ld, msgid, all,
|
||||||
lc->lconn_sb, lc, result );
|
lc->lconn_sb, &lc, result );
|
||||||
|
if ( lc == NULL ) lc = nextlc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -410,7 +411,7 @@ try_read1msg(
|
|||||||
ber_int_t msgid,
|
ber_int_t msgid,
|
||||||
int all,
|
int all,
|
||||||
Sockbuf *sb,
|
Sockbuf *sb,
|
||||||
LDAPConn *lc,
|
LDAPConn **lcp,
|
||||||
LDAPMessage **result )
|
LDAPMessage **result )
|
||||||
{
|
{
|
||||||
BerElement *ber;
|
BerElement *ber;
|
||||||
@ -420,6 +421,7 @@ try_read1msg(
|
|||||||
ber_len_t len;
|
ber_len_t len;
|
||||||
int foundit = 0;
|
int foundit = 0;
|
||||||
LDAPRequest *lr, *tmplr;
|
LDAPRequest *lr, *tmplr;
|
||||||
|
LDAPConn *lc;
|
||||||
BerElement tmpber;
|
BerElement tmpber;
|
||||||
int rc, refer_cnt, hadref, simple_request;
|
int rc, refer_cnt, hadref, simple_request;
|
||||||
ber_int_t lderr;
|
ber_int_t lderr;
|
||||||
@ -433,7 +435,8 @@ try_read1msg(
|
|||||||
int v3ref;
|
int v3ref;
|
||||||
|
|
||||||
assert( ld != NULL );
|
assert( ld != NULL );
|
||||||
assert( lc != NULL );
|
assert( lcp != NULL );
|
||||||
|
assert( *lcp != NULL );
|
||||||
|
|
||||||
#ifdef NEW_LOGGING
|
#ifdef NEW_LOGGING
|
||||||
LDAP_LOG ( OPERATION, ARGS, "read1msg: msgid %d, all %d\n", msgid, all, 0 );
|
LDAP_LOG ( OPERATION, ARGS, "read1msg: msgid %d, all %d\n", msgid, all, 0 );
|
||||||
@ -441,6 +444,8 @@ try_read1msg(
|
|||||||
Debug( LDAP_DEBUG_TRACE, "read1msg: msgid %d, all %d\n", msgid, all, 0 );
|
Debug( LDAP_DEBUG_TRACE, "read1msg: msgid %d, all %d\n", msgid, all, 0 );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
lc = *lcp;
|
||||||
|
|
||||||
retry:
|
retry:
|
||||||
if ( lc->lconn_ber == NULL ) {
|
if ( lc->lconn_ber == NULL ) {
|
||||||
lc->lconn_ber = ldap_alloc_ber_with_options(ld);
|
lc->lconn_ber = ldap_alloc_ber_with_options(ld);
|
||||||
@ -816,6 +821,7 @@ lr->lr_res_matched ? lr->lr_res_matched : "" );
|
|||||||
|
|
||||||
if ( lc != NULL ) {
|
if ( lc != NULL ) {
|
||||||
ldap_free_connection( ld, lc, 0, 1 );
|
ldap_free_connection( ld, lc, 0, 1 );
|
||||||
|
*lcp = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user