]> git.sur5r.net Git - openldap/blobdiff - libraries/libmdb/mdb.c
Fix free page re-use
[openldap] / libraries / libmdb / mdb.c
index 5715eac78c3d4f9e82cb086f0354a95532f735df..cb12757097996bebce36743056c36ea2aa113f3c 100644 (file)
@@ -398,7 +398,9 @@ mdb_alloc_page(MDB_txn *txn, MDB_page *parent, unsigned int parent_idx, int num)
                ULONG oldest = txn->mt_txnid - 2;
                unsigned int i;
                for (i=0; i<txn->mt_env->me_txns->mt_numreaders; i++) {
-                       if (txn->mt_env->me_txns->mt_readers[i].mr_txnid < oldest)
+                       ULONG mr = txn->mt_env->me_txns->mt_readers[i].mr_txnid;
+                       if (!mr) continue;
+                       if (mr < oldest)
                                oldest = txn->mt_env->me_txns->mt_readers[i].mr_txnid;
                }
                if (oldest > txn->mt_env->me_pghead->mo_txnid) {