Emmanuel Dreyfus wrote:
Hello
If all the modifications are removed by slapo-nops, I end up with op->orm_modlist == NULL. slapo-nops will attempt to cancel the operation, with this code: if ((m = op->orm_modlist) == NULL) { op->o_bd->bd_info = (BackendInfo *)(on->on_info); send_ldap_error(op, rs, LDAP_SUCCESS, ""); return(rs->sr_err); }
But if slapo-accesslog is also configured, slapd will exit with an assertion: assertion "a->a_vals[0].bv_val != NULL" failed: file "schema_check.c", line 89, function "entry_schema_check"
You need to make sure that your overlays are configured such that your nops executes before accesslog, to prevent accesslog from attempting to log anything.
Also, in your cancel code, you need to set op->o_callback to NULL before calling send_ldap_error, to make sure that no other overlays run. Then set it back to whatever it was, before returning.