]> git.sur5r.net Git - openldap/commitdiff
ITS#7956 fix compact of empty env
authorHoward Chu <hyc@symas.com>
Thu, 2 Oct 2014 21:11:43 +0000 (22:11 +0100)
committerHoward Chu <hyc@symas.com>
Thu, 2 Oct 2014 21:11:43 +0000 (22:11 +0100)
libraries/liblmdb/mdb.c

index 6a9fd97a5a3839f1cf4747c4f501265ce946f5c5..3a86b57f9c8b41d8aab34a0e68de5dbc2c0cf7a2 100644 (file)
@@ -8618,8 +8618,12 @@ mdb_env_copyfd1(MDB_env *env, HANDLE fd)
                /* Set metapage 1 */
                mm->mm_last_pg = txn->mt_next_pgno - freecount - 1;
                mm->mm_dbs[1] = txn->mt_dbs[1];
-               mm->mm_dbs[1].md_root = mm->mm_last_pg;
-               mm->mm_txnid = 1;
+               if (mm->mm_last_pg > 1) {
+                       mm->mm_dbs[1].md_root = mm->mm_last_pg;
+                       mm->mm_txnid = 1;
+               } else {
+                       mm->mm_dbs[1].md_root = P_INVALID;
+               }
        }
        my.mc_wlen[0] = env->me_psize * 2;
        my.mc_txn = txn;