]> git.sur5r.net Git - openldap/commitdiff
ITS#8304 fix page_merge
authorHoward Chu <hyc@openldap.org>
Mon, 9 Nov 2015 20:09:10 +0000 (20:09 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 9 Nov 2015 20:10:51 +0000 (20:10 +0000)
Was using the pre-touch dst page pointer instead of the touched page

libraries/liblmdb/mdb.c

index 3df4a1d2f43c368de9a36863affea64eb972f207..98c73830e03dd0ec7c65c43421585c1501d852a7 100644 (file)
@@ -7733,6 +7733,9 @@ mdb_page_merge(MDB_cursor *csrc, MDB_cursor *cdst)
        if ((rc = mdb_page_touch(cdst)))
                return rc;
 
+       /* get dst page again now that we've touched it. */
+       pdst = cdst->mc_pg[cdst->mc_top];
+
        /* Move all nodes from src to dst.
         */
        j = nkeys = NUMKEYS(pdst);