diff --git a/CHANGES b/CHANGES index 18a8db8086a77d94d945c1dde3c19eb08650e613..14411fddeaea230494d56363cc7a8ea8bfaabb9c 100644 --- a/CHANGES +++ b/CHANGES @@ -9,6 +9,7 @@ OpenLDAP 2.4.11 Engineering Fixed slapo-pcache handling of negative search caches (ITS#5546) Fixed slapo-ppolicy DNs with whitespaces (ITS#5552) Fixed slapo-syncprov ACL evaluation (ITS#5548) + Fixed slapo-syncprov full reload (ITS#5564) Build Environment Fixed test048 to skip if threads is not available (ITS#5529) Documentation diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index e6e2161e447abcc7d4c625ce29e7f44a45f56aba..80fd2774c291d5a8f82efae4581a0beef63d4525 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -2323,6 +2323,15 @@ no_change: if ( !(op->o_sync_mode & SLAP_SYNC_PERSIST) ) { send_ldap_error( op, rs, LDAP_SYNC_REFRESH_REQUIRED, "sync cookie is stale" ); return rs->sr_err; } + if ( srs->sr_state.ctxcsn ) { + ber_bvarray_free_x( srs->sr_state.ctxcsn, op->o_tmpmemctx ); + srs->sr_state.ctxcsn = NULL; + } + if ( srs->sr_state.sids ) { + slap_sl_free( srs->sr_state.sids, op->o_tmpmemctx ); + srs->sr_state.sids = NULL; + } + srs->sr_state.numcsns = 0; } else { gotstate = 1; /* If changed and doing Present lookup, send Present UUIDs */