X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=servers%2Fslapd%2Fslapi%2Fslapi_pblock.c;h=6eb6de5b3fd1d883632af57e59b659ba7937a648;hb=9b21d585dcee5a09465ab029d5d8321a8da343f0;hp=28615bbd3670fed86dc8f1a5001158c24b631c80;hpb=82e95f80918dabfc814e464c8254123975d25d69;p=openldap diff --git a/servers/slapd/slapi/slapi_pblock.c b/servers/slapd/slapi/slapi_pblock.c index 28615bbd36..6eb6de5b3f 100644 --- a/servers/slapd/slapi/slapi_pblock.c +++ b/servers/slapd/slapi/slapi_pblock.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2002-2009 The OpenLDAP Foundation. + * Copyright 2002-2012 The OpenLDAP Foundation. * Portions Copyright 1997,2002-2003 IBM Corporation. * All rights reserved. * @@ -1176,13 +1176,8 @@ pblock_set( Slapi_PBlock *pb, int param, void *value ) break; case SLAPI_SEARCH_RESULT_ENTRY: PBLOCK_ASSERT_OP( pb, 0 ); - if ( pb->pb_rs->sr_flags & REP_ENTRY_MUSTBEFREED ) { - entry_free( pb->pb_rs->sr_entry ); - } else if ( pb->pb_rs->sr_flags & REP_ENTRY_MUSTRELEASE ) { - be_entry_release_r( pb->pb_op, pb->pb_rs->sr_entry ); - pb->pb_rs->sr_flags ^= REP_ENTRY_MUSTRELEASE; - } - pb->pb_rs->sr_entry = (Slapi_Entry *)value; + rs_replace_entry( pb->pb_op, pb->pb_rs, NULL, (Slapi_Entry *)value ); + /* TODO: Should REP_ENTRY_MODIFIABLE be set? */ pb->pb_rs->sr_flags |= REP_ENTRY_MUSTBEFREED; break; case SLAPI_BIND_RET_SASLCREDS: @@ -1429,4 +1424,3 @@ slapi_int_pblock_get_next( Slapi_PBlock **pb ) } #endif /* LDAP_SLAPI */ -