Skip to content
Snippets Groups Projects
Commit bba3f62b authored by Luke Howard's avatar Luke Howard
Browse files

Always restore op->o_callback in SLAPI overlay - was spinning indefinitely

parent fa27310d
No related branches found
No related tags found
No related merge requests found
......@@ -676,11 +676,10 @@ slapi_over_extended( Operation *op, SlapReply *rs )
rc = (*callback)( pb );
if ( rc == SLAPI_PLUGIN_EXTENDED_SENT_RESULT ) {
slapi_pblock_destroy( pb );
return rc;
goto cleanup;
} else if ( rc == SLAPI_PLUGIN_EXTENDED_NOT_HANDLED ) {
slapi_pblock_destroy( pb );
return SLAP_CB_CONTINUE;
rc = SLAP_CB_CONTINUE;
goto cleanup;
}
assert( rs->sr_rspoid != NULL );
......@@ -694,9 +693,13 @@ slapi_over_extended( Operation *op, SlapReply *rs )
if ( rs->sr_rspdata != NULL )
ber_bvfree( rs->sr_rspdata );
rc = rs->sr_err;
cleanup:
slapi_pblock_destroy( pb );
op->o_callback = cb.sc_next;
return rs->sr_err;
return rc;
}
static int
......@@ -727,10 +730,11 @@ slapi_over_access_allowed(
rc = SLAP_CB_CONTINUE;
}
op->o_callback = cb.sc_next;
if ( !internal_op )
if ( !internal_op ) {
slapi_pblock_destroy( pb );
}
op->o_callback = cb.sc_next;
return rc;
}
......@@ -807,6 +811,8 @@ slapi_over_acl_group(
if ( e != target ) {
be_entry_release_r( op, e );
}
op->o_callback = cb.sc_next;
} else {
rc = LDAP_NO_SUCH_OBJECT; /* return SLAP_CB_CONTINUE for correctness? */
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment