--- servers/slapd/overlays/syncprov.c 2004/12/10 02:18:33 1.56 +++ servers/slapd/overlays/syncprov.c 2004/12/31 11:03:59 1.56.2.2 @@ -1,4 +1,4 @@ -/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.55 2004/12/10 01:51:34 hyc Exp $ */ +/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/syncprov.c,v 1.56.2.1 2004/12/30 21:29:58 kurt Exp $ */ /* syncprov.c - syncrepl provider */ /* This work is part of OpenLDAP Software . * @@ -1002,7 +1002,7 @@ syncprov_matchops( Operation *op, opcook done: if ( op->o_tag != LDAP_REQ_ADD ) { op->o_bd->bd_info = (BackendInfo *)on->on_info; - be_entry_release_r( op, e ); + be_entry_release_rw( op, e, 0 ); op->o_bd->bd_info = (BackendInfo *)on; } if ( freefdn ) { @@ -1194,6 +1194,10 @@ syncprov_playlog( Operation *op, SlapRep ndel = i; + /* Zero out unused slots */ + for ( i=ndel; i < num - nmods; i++ ) + uuids[i].bv_len = 0; + /* Mods must be validated to see if they belong in this delete set. */ @@ -1667,7 +1671,7 @@ syncprov_search_response( Operation *op, if ( e ) { op->o_bd->bd_info = (BackendInfo *)on->on_info; - be_entry_release_r( op, e ); + be_entry_release_rw( op, e, 0 ); op->o_bd->bd_info = (BackendInfo *)on; } ch_free( sr ); @@ -2041,7 +2045,7 @@ syncprov_db_open( si->si_ctxcsnbuf[si->si_ctxcsn.bv_len] = '\0'; strcpy( ctxcsnbuf, si->si_ctxcsnbuf ); } - be_entry_release_r( op, e ); + be_entry_release_rw( op, e, 0 ); op->o_bd->bd_info = (BackendInfo *)on; op->o_req_dn = be->be_suffix[0]; op->o_req_ndn = be->be_nsuffix[0];