diff --git a/CHANGES b/CHANGES index 35064db935ba361334813d96b258d5df7cce44c8..b67e3dc8cfe90a718c8117af058f973bb4c3b411 100644 --- a/CHANGES +++ b/CHANGES @@ -77,6 +77,7 @@ OpenLDAP 2.4.24 Engineering Fixed slapo-syncprov to refresh if context is dirty (ITS#6710) Fixed slapo-syncprov CSN updates to all replicas (ITS#6718) Fixed slapo-syncprov sessionlog ordering (ITS#6716) + Fixed slapo-translucent entry leak (ITS#6746) Fixed contrib/autogroup LDAP URI with attribute filter (ITS#6536) Fixed contrib/nssov to only close socket on shutdown (ITS#6676) Fixed contrib/nssov multi platform support (ITS#6604) diff --git a/servers/slapd/overlays/translucent.c b/servers/slapd/overlays/translucent.c index 2bbe357d380b46f408d6ea4d5dad91453de9efd3..63f283c009153915b78e2191bfe2df6f7853864f 100644 --- a/servers/slapd/overlays/translucent.c +++ b/servers/slapd/overlays/translucent.c @@ -1160,11 +1160,11 @@ static int translucent_search(Operation *op, SlapReply *rs) { av = tavl_end( tc.list, TAVL_DIR_LEFT ); while ( av ) { rs->sr_entry = av->avl_data; - rc = test_filter( op, rs->sr_entry, op->ors_filter ); - if ( rc == LDAP_COMPARE_TRUE ) { + if ( rc == LDAP_SUCCESS && LDAP_COMPARE_TRUE == + test_filter( op, rs->sr_entry, op->ors_filter )) + { rs->sr_flags = REP_ENTRY_MUSTBEFREED; rc = send_search_entry( op, rs ); - if ( rc ) break; } else { entry_free( rs->sr_entry ); }