diff --git a/servers/slapd/overlays/accesslog.c b/servers/slapd/overlays/accesslog.c index 6b9c729c5e..e7df2bbdee 100644 --- a/servers/slapd/overlays/accesslog.c +++ b/servers/slapd/overlays/accesslog.c @@ -1990,11 +1990,11 @@ accesslog_op_mod( Operation *op, SlapReply *rs ) } if ( doit ) { - slap_callback *cb = op->o_tmpcalloc( 1, sizeof( slap_callback ), op->o_tmpmemctx ); + slap_callback *cb = op->o_tmpcalloc( 1, sizeof( slap_callback ), op->o_tmpmemctx ), *cb2; cb->sc_cleanup = accesslog_mod_cleanup; cb->sc_private = on; - cb->sc_next = op->o_callback; - op->o_callback = cb; + for ( cb2 = op->o_callback; cb2->sc_next; cb2 = cb2->sc_next ); + cb2->sc_next = cb; #ifdef RMUTEX_DEBUG Debug( LDAP_DEBUG_SYNC,