]> git.sur5r.net Git - openldap/commitdiff
ITS#8424 init cursor in mdb_env_cwalk
authorHoward Chu <hyc@openldap.org>
Sat, 14 May 2016 23:44:54 +0000 (00:44 +0100)
committerHoward Chu <hyc@openldap.org>
Sat, 14 May 2016 23:44:54 +0000 (00:44 +0100)
libraries/liblmdb/mdb.c

index f3ca42755c381c4d1038be74d2da108d784a7798..af4d73a73ad3e9a036784420e34179e89137223f 100644 (file)
@@ -9732,7 +9732,7 @@ mdb_env_cthr_toggle(mdb_copy *my, int st)
 static int ESECT
 mdb_env_cwalk(mdb_copy *my, pgno_t *pg, int flags)
 {
-       MDB_cursor mc;
+       MDB_cursor mc = {0};
        MDB_node *ni;
        MDB_page *mo, *mp, *leaf;
        char *buf, *ptr;
@@ -9744,8 +9744,8 @@ mdb_env_cwalk(mdb_copy *my, pgno_t *pg, int flags)
                return MDB_SUCCESS;
 
        mc.mc_snum = 1;
-       mc.mc_top = 0;
        mc.mc_txn = my->mc_txn;
+       mc.mc_flags = my->mc_txn->mt_flags & (C_ORIG_RDONLY|C_WRITEMAP);
 
        rc = mdb_page_get(&mc, *pg, &mc.mc_pg[0], NULL);
        if (rc)