From bf8aa0c90414d25a1fecfdc8b134384edd08e275 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Wed, 24 Oct 2007 17:03:07 +0000 Subject: [PATCH] import fix to ITS#4860 --- CHANGES | 2 +- servers/slapd/sets.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 8f7ccffeb9..b934868bee 100644 --- a/CHANGES +++ b/CHANGES @@ -4,7 +4,7 @@ OpenLDAP 2.3.39 Engineering Fixed slapd database/overlay config conflict (ITS#4848) Fixed slapd password_hash config order (ITS#5082) Fixed slapd slap_mods_check bug (ITS#5119) - Fixed slapd ACL sets memory handling (ITS#4873) + Fixed slapd ACL sets memory handling (ITS#4860,ITS#4873) Fixed slapd ordered values add normalization issue (ITS#5136) Fixed slapd-bdb DB_CONFIG conversion bug (ITS#5118) Fixed slapd-ldap search control parsing (ITS#5138) diff --git a/servers/slapd/sets.c b/servers/slapd/sets.c index e7c807cf25..fa56324537 100644 --- a/servers/slapd/sets.c +++ b/servers/slapd/sets.c @@ -212,11 +212,13 @@ slap_set_join( /* dup the shortest */ if ( llen < rlen ) { + last = llen; set = set_dup( cp, lset, SLAP_SET_LREF2REF( op_flags ) ); lset = NULL; sset = rset; } else { + last = rlen; set = set_dup( cp, rset, SLAP_SET_RREF2REF( op_flags ) ); rset = NULL; sset = lset; @@ -226,7 +228,6 @@ slap_set_join( break; } - last = slap_set_size( set ); for ( i = 0; !BER_BVISNULL( &set[ i ] ); i++ ) { for ( j = 0; !BER_BVISNULL( &sset[ j ] ); j++ ) { if ( bvmatch( &set[ i ], &sset[ j ] ) ) { @@ -261,11 +262,13 @@ slap_set_join( } else { set = set_dup( cp, lset, SLAP_SET_LREF2REF( op_flags ) ); + lset = NULL; break; } } else if ( j == 0 ) { set = set_dup( cp, rset, SLAP_SET_RREF2REF( op_flags ) ); + rset = NULL; break; } -- 2.39.5