Commit 3a31cc63 authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

ITS#6397

parent 580f045a
...@@ -38,6 +38,7 @@ OpenLDAP 2.4.20 Engineering ...@@ -38,6 +38,7 @@ OpenLDAP 2.4.20 Engineering
Fixed slapo-syncprov deadlock (ITS#6335) Fixed slapo-syncprov deadlock (ITS#6335)
Fixed slapo-syncprov memory leak (ITS#6376) Fixed slapo-syncprov memory leak (ITS#6376)
Fixed slapo-syncprov out of order changes (ITS#6346) Fixed slapo-syncprov out of order changes (ITS#6346)
Fixed slapo-syncprov psearch with stale cookie (ITS#6397)
Build Environment Build Environment
Added additional operations for ITS#6332 Added additional operations for ITS#6332
Fixed memrchr define (ITS#6351) Fixed memrchr define (ITS#6351)
......
...@@ -2473,6 +2473,8 @@ syncprov_op_search( Operation *op, SlapReply *rs ) ...@@ -2473,6 +2473,8 @@ syncprov_op_search( Operation *op, SlapReply *rs )
changed = SS_CHANGED; changed = SS_CHANGED;
else if ( newer > 0 ) { else if ( newer > 0 ) {
/* our state is older, tell consumer nothing */ /* our state is older, tell consumer nothing */
rs->sr_err = LDAP_SUCCESS;
bailout:
if ( sop ) { if ( sop ) {
syncops **sp = &si->si_ops; syncops **sp = &si->si_ops;
...@@ -2483,7 +2485,6 @@ syncprov_op_search( Operation *op, SlapReply *rs ) ...@@ -2483,7 +2485,6 @@ syncprov_op_search( Operation *op, SlapReply *rs )
ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex ); ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex );
ch_free( sop ); ch_free( sop );
} }
rs->sr_err = LDAP_SUCCESS;
rs->sr_ctrls = NULL; rs->sr_ctrls = NULL;
send_ldap_result( op, rs ); send_ldap_result( op, rs );
return rs->sr_err; return rs->sr_err;
...@@ -2538,8 +2539,9 @@ no_change: if ( !(op->o_sync_mode & SLAP_SYNC_PERSIST) ) { ...@@ -2538,8 +2539,9 @@ no_change: if ( !(op->o_sync_mode & SLAP_SYNC_PERSIST) ) {
ber_bvarray_free_x( ctxcsn, op->o_tmpmemctx ); ber_bvarray_free_x( ctxcsn, op->o_tmpmemctx );
if ( sids ) if ( sids )
op->o_tmpfree( sids, op->o_tmpmemctx ); op->o_tmpfree( sids, op->o_tmpmemctx );
send_ldap_error( op, rs, LDAP_SYNC_REFRESH_REQUIRED, "sync cookie is stale" ); rs->sr_err = LDAP_SYNC_REFRESH_REQUIRED;
return rs->sr_err; rs->sr_text = "sync cookie is stale";
goto bailout;
} }
if ( srs->sr_state.ctxcsn ) { if ( srs->sr_state.ctxcsn ) {
ber_bvarray_free_x( srs->sr_state.ctxcsn, op->o_tmpmemctx ); ber_bvarray_free_x( srs->sr_state.ctxcsn, op->o_tmpmemctx );
...@@ -2559,8 +2561,7 @@ no_change: if ( !(op->o_sync_mode & SLAP_SYNC_PERSIST) ) { ...@@ -2559,8 +2561,7 @@ no_change: if ( !(op->o_sync_mode & SLAP_SYNC_PERSIST) ) {
ber_bvarray_free_x( ctxcsn, op->o_tmpmemctx ); ber_bvarray_free_x( ctxcsn, op->o_tmpmemctx );
if ( sids ) if ( sids )
op->o_tmpfree( sids, op->o_tmpmemctx ); op->o_tmpfree( sids, op->o_tmpmemctx );
send_ldap_result( op, rs ); goto bailout;
return rs->sr_err;
} }
} }
} else { } else {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment