]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9116 LMDB: fix bogus error check in read-only txns
authorHoward Chu <hyc@openldap.org>
Sun, 10 Nov 2019 04:58:35 +0000 (04:58 +0000)
committerHoward Chu <hyc@openldap.org>
Sun, 10 Nov 2019 04:58:35 +0000 (04:58 +0000)
libraries/liblmdb/mdb.c

index f68542124ed00e80770635aca90cf8d509fcabad..3cee0b2e1adbb0233ee2f9e416ebe52c383afb04 100644 (file)
@@ -6448,7 +6448,7 @@ mdb_page_search(MDB_cursor *mc, MDB_val *key, int flags)
                /* Make sure we're using an up-to-date root */
                if (*mc->mc_dbflag & DB_STALE) {
                                MDB_cursor mc2;
-                               if (TXN_DBI_CHANGED(mc->mc_txn, mc->mc_dbi))
+                               if (!F_ISSET(mc->mc_txn->mt_flags, MDB_TXN_RDONLY) && TXN_DBI_CHANGED(mc->mc_txn, mc->mc_dbi))
                                        return MDB_BAD_DBI;
                                mdb_cursor_init(&mc2, mc->mc_txn, MAIN_DBI, NULL);
                                rc = mdb_page_search(&mc2, &mc->mc_dbx->md_name, 0);