]> git.sur5r.net Git - openldap/commitdiff
ITS#5060 take care of entry cleanup when using
authorHoward Chu <hyc@openldap.org>
Wed, 3 Oct 2007 09:40:08 +0000 (09:40 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 3 Oct 2007 09:40:08 +0000 (09:40 +0000)
  pblock_set(SLAPI_SEARCH_RESULT_ENTRY)

servers/slapd/slapi/slapi_pblock.c

index 136a5586b1c7c7424f18c8c4a5b5b17326b09f59..3ff855dc423da2199c4c8a826f050c81498f7ad2 100644 (file)
@@ -1176,7 +1176,14 @@ 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;
+               pb->pb_rs->sr_flags |= REP_ENTRY_MUSTBEFREED;
                break;
        case SLAPI_BIND_RET_SASLCREDS:
                PBLOCK_ASSERT_OP( pb, 0 );