On Mon, Mar 16, 2009 at 12:53:18AM -0700, Howard Chu wrote: > 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.
Without modifying the code, configuring nops after accesslog in slapd.conf does prevent it from crashing. Setting o_callback to NULL fixes the crash. And it seems to fix it regardless of overlay order: whether nops is configured before or after accesslog, it works fine with that cancel code: if ((m = op->orm_modlist) == NULL) { slap_callback *cb = op->o_callback; op->o_bd->bd_info = (BackendInfo *)(on->on_info); op->o_callback = NULL; send_ldap_error(op, rs, LDAP_SUCCESS, ""); op->o_callback = cb; return (rs->sr_err); } -- Emmanuel Dreyfus m...@netbsd.org