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 f3ca427..af4d73a 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)