]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/sets.c
More for prev commit, ITS#5120.
[openldap] / servers / slapd / sets.c
index 3393e83bf3c3a17df4b1ce645615b23b99a7e63d..1d9c38d477b85c6c6e47c8d9a422fda2e67ac917 100644 (file)
@@ -239,11 +239,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;
@@ -253,7 +255,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 ] ) ) {
@@ -288,11 +289,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;
                }