From: Pierangelo Masarati Date: Wed, 24 Oct 2007 17:03:07 +0000 (+0000) Subject: import fix to ITS#4860 X-Git-Tag: OPENLDAP_REL_ENG_2_3_39~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bf8aa0c90414d25a1fecfdc8b134384edd08e275;p=thirdparty%2Fopenldap.git import fix to ITS#4860 --- 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; }