mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-24 13:24:56 +08:00
re-fetch the request; since the mutex has been released wile freeing the message, it may have been already removed by someone else (ITS#3800)
This commit is contained in:
parent
1aaa18b180
commit
a12298c12e
@ -130,7 +130,7 @@ do_abandon(
|
||||
}
|
||||
if ( lr->lr_origid == msgid ) {/* child: abandon it */
|
||||
(void) do_abandon( ld,
|
||||
msgid, lr->lr_msgid, sctrls, cctrls );
|
||||
lr->lr_origid, lr->lr_msgid, sctrls, cctrls );
|
||||
}
|
||||
}
|
||||
|
||||
@ -161,6 +161,15 @@ do_abandon(
|
||||
return LDAP_SUCCESS;
|
||||
}
|
||||
|
||||
/* fetch again the request that we are abandoning */
|
||||
if ( lr != NULL ) {
|
||||
for ( lr = ld->ld_requests; lr != NULL; lr = lr->lr_next ) {
|
||||
if ( lr->lr_msgid == msgid ) { /* this message */
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
err = 0;
|
||||
if ( sendabandon ) {
|
||||
if( ber_sockbuf_ctrl( ld->ld_sb, LBER_SB_OPT_GET_FD, NULL ) == -1 ) {
|
||||
|
Loading…
Reference in New Issue
Block a user