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:
Pierangelo Masarati 2005-06-30 02:36:55 +00:00
parent 1aaa18b180
commit a12298c12e

View File

@ -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 ) {