]> git.sur5r.net Git - openldap/commitdiff
Silence some valgrind uninit warnings
authorHoward Chu <hyc@openldap.org>
Fri, 20 Nov 2015 09:47:56 +0000 (09:47 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 23 Nov 2015 01:47:39 +0000 (01:47 +0000)
libraries/liblmdb/mdb.c

index 5e2b69069430e340500038de28b3e8a359342002..28f3be3f871a985d38f8d24674856a1814d14b3c 100644 (file)
@@ -7635,6 +7635,8 @@ mdb_node_move(MDB_cursor *csrc, MDB_cursor *cdst)
                                        m3 = &m2->mc_xcursor->mx_cursor;
                                else
                                        m3 = m2;
+                               if (!(m3->mc_flags & C_INITIALIZED) || m3->mc_top < csrc->mc_top)
+                                       continue;
                                if (m3 != cdst &&
                                        m3->mc_pg[csrc->mc_top] == mpd &&
                                        m3->mc_ki[csrc->mc_top] >= cdst->mc_ki[csrc->mc_top]) {
@@ -7657,6 +7659,8 @@ mdb_node_move(MDB_cursor *csrc, MDB_cursor *cdst)
                                else
                                        m3 = m2;
                                if (m3 == csrc) continue;
+                               if (!(m3->mc_flags & C_INITIALIZED) || m3->mc_top < csrc->mc_top)
+                                       continue;
                                if (m3->mc_pg[csrc->mc_top] == mps) {
                                        if (!m3->mc_ki[csrc->mc_top]) {
                                                m3->mc_pg[csrc->mc_top] = cdst->mc_pg[cdst->mc_top];
@@ -7957,7 +7961,8 @@ mdb_rebalance(MDB_cursor *mc)
                                                m3 = &m2->mc_xcursor->mx_cursor;
                                        else
                                                m3 = m2;
-                                       if (m3->mc_snum < mc->mc_snum) continue;
+                                       if (!(m3->mc_flags & C_INITIALIZED) || (m3->mc_snum < mc->mc_snum))
+                                               continue;
                                        if (m3->mc_pg[0] == mp) {
                                                m3->mc_snum = 0;
                                                m3->mc_top = 0;
@@ -7993,6 +7998,8 @@ mdb_rebalance(MDB_cursor *mc)
                                        else
                                                m3 = m2;
                                        if (m3 == mc) continue;
+                                       if (!(m3->mc_flags & C_INITIALIZED))
+                                               continue;
                                        if (m3->mc_pg[0] == mp) {
                                                for (i=0; i<mc->mc_db->md_depth; i++) {
                                                        m3->mc_pg[i] = m3->mc_pg[i+1];