]> git.sur5r.net Git - openldap/commitdiff
ITS#8310 fix mdb_rebalance cursor fixup
authorHoward Chu <hyc@openldap.org>
Fri, 13 Nov 2015 09:25:55 +0000 (09:25 +0000)
committerHoward Chu <hyc@openldap.org>
Fri, 13 Nov 2015 09:25:55 +0000 (09:25 +0000)
When collapsing root, must adjust entire cursor stack

libraries/liblmdb/mdb.c

index 9af3704f78f9e0374a112ad49775c5ead54b8651..fdfcb351097fe2ef2d17e99e2d4bf7fdf0dd22bb 100644 (file)
@@ -7970,9 +7970,9 @@ mdb_rebalance(MDB_cursor *mc)
                                                m3 = &m2->mc_xcursor->mx_cursor;
                                        else
                                                m3 = m2;
-                                       if (m3 == mc || m3->mc_snum < mc->mc_snum) continue;
+                                       if (m3 == mc) continue;
                                        if (m3->mc_pg[0] == mp) {
-                                               for (i=0; i<m3->mc_snum; i++) {
+                                               for (i=0; i<mc->mc_db->md_depth; i++) {
                                                        m3->mc_pg[i] = m3->mc_pg[i+1];
                                                        m3->mc_ki[i] = m3->mc_ki[i+1];
                                                }