]> git.sur5r.net Git - openldap/commitdiff
Import syncrepl psearch add bug fix
authorKurt Zeilenga <kurt@openldap.org>
Thu, 1 Jan 2004 19:21:58 +0000 (19:21 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Thu, 1 Jan 2004 19:21:58 +0000 (19:21 +0000)
CHANGES
servers/slapd/back-bdb/add.c
servers/slapd/back-bdb/search.c

diff --git a/CHANGES b/CHANGES
index 4137e9a041ec23c202730262f0b18ee53c1f1f85..24eac715c48649edb062c274518d11a93bcf16b9 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,7 +1,7 @@
 OpenLDAP 2.2 Change Log
 
-OpenLDAP 2.2.4 Engineering
-       <insert notes here>
+OpenLDAP 2.2.5 Engineering
+       Fix back-bdb syncrepl psearch add bug
 
 OpenLDAP 2.2.4 Release
        Initial release for "general" use.
index 01c619833c9b46c683525c7210103e80228b7d55..6b30fed39acda4428ac41067ff0c0bd1b99c476e 100644 (file)
@@ -496,8 +496,9 @@ retry:      /* transaction retry */
 
                if ( rs->sr_err == LDAP_SUCCESS && !op->o_no_psearch ) {
                        ldap_pvt_thread_rdwr_rlock( &bdb->bi_pslist_rwlock );
+                       assert( BEI(e) );
                        LDAP_LIST_FOREACH ( ps_list, &bdb->bi_psearch_list, o_ps_link ) {
-                               bdb_psearch( op, rs, ps_list, op->oq_add.rs_e,
+                               bdb_psearch( op, rs, ps_list, e,
                                        LDAP_PSEARCH_BY_ADD );
                        }
                        ldap_pvt_thread_rdwr_runlock( &bdb->bi_pslist_rwlock );
index 9f753492a148ed0425256f42cc5da9232986ca48..2ec854b91cfc0230eef4394783bc0ed70722ce97 100644 (file)
@@ -1001,9 +1001,6 @@ id2entry_retry:
                } else {
                        e = ps_e;
                }
-#if 0
-               assert( BEI(e) );
-#endif
 
                rs->sr_entry = e;
 
@@ -1054,15 +1051,13 @@ id2entry_retry:
                        break;
 
                case LDAP_SCOPE_SUBTREE: {
-                       EntryInfo *tmp = BEI(e);
-                       if ( tmp ) for (; tmp->bei_parent; tmp = tmp->bei_parent ) {
+                       EntryInfo *tmp;
+                       for (tmp = BEI(e); tmp->bei_parent;
+                                tmp = tmp->bei_parent ) {
                                if ( tmp->bei_id == base.e_id ) {
                                        scopeok = 1;
                                        break;
                                }
-                       } else {
-                               /* FIXME */
-                               scopeok = 1;
                        }
                        } break;
                }