]> git.sur5r.net Git - openldap/commitdiff
import fix to ITS#4860
authorPierangelo Masarati <ando@openldap.org>
Wed, 24 Oct 2007 17:03:07 +0000 (17:03 +0000)
committerPierangelo Masarati <ando@openldap.org>
Wed, 24 Oct 2007 17:03:07 +0000 (17:03 +0000)
CHANGES
servers/slapd/sets.c

diff --git a/CHANGES b/CHANGES
index 8f7ccffeb9cdd82ec11861d4cb3a44f50ee322da..b934868beecb31127afed12ec5e3f4eda4edfe67 100644 (file)
--- 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)
index e7c807cf256de636238f9a646e591d94ae249eb9..fa56324537331b8d7ed9a7decef39df837c57765 100644 (file)
@@ -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;
                }