mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-03-07 14:18:15 +08:00
Look for our callback to pop, don't just do it blindly
This commit is contained in:
parent
3de89b4201
commit
99341bb367
@ -699,7 +699,7 @@ over_op_func(
|
|||||||
slap_overinfo *oi;
|
slap_overinfo *oi;
|
||||||
slap_overinst *on;
|
slap_overinst *on;
|
||||||
BackendDB *be = op->o_bd, db;
|
BackendDB *be = op->o_bd, db;
|
||||||
slap_callback cb = {NULL, over_back_response, NULL, NULL};
|
slap_callback cb = {NULL, over_back_response, NULL, NULL}, **sc;
|
||||||
int rc = SLAP_CB_CONTINUE;
|
int rc = SLAP_CB_CONTINUE;
|
||||||
|
|
||||||
/* FIXME: used to happen for instance during abandon
|
/* FIXME: used to happen for instance during abandon
|
||||||
@ -719,9 +719,14 @@ over_op_func(
|
|||||||
op->o_callback = &cb;
|
op->o_callback = &cb;
|
||||||
|
|
||||||
rc = overlay_op_walk( op, rs, which, oi, on );
|
rc = overlay_op_walk( op, rs, which, oi, on );
|
||||||
|
for ( sc = &op->o_callback; *sc; sc = &(*sc)->sc_next ) {
|
||||||
|
if ( *sc == &cb ) {
|
||||||
|
*sc = cb.sc_next;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
op->o_bd = be;
|
op->o_bd = be;
|
||||||
op->o_callback = cb.sc_next;
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user