From: Howard Chu Date: Thu, 26 Oct 2017 18:04:37 +0000 (+0100) Subject: ITS#8760 fix regression in 0.9.19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d5e2d2a2ac38b9d56b6ba73187c325024718167;p=thirdparty%2Fopenldap.git ITS#8760 fix regression in 0.9.19 --- diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index 1bf81ed4c8..f5f99a5901 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -10617,8 +10617,11 @@ int mdb_dbi_open(MDB_txn *txn, const char *name, unsigned int flags, MDB_dbi *db MDB_node *node = NODEPTR(mc.mc_pg[mc.mc_top], mc.mc_ki[mc.mc_top]); if ((node->mn_flags & (F_DUPDATA|F_SUBDATA)) != F_SUBDATA) return MDB_INCOMPATIBLE; - } else if (! (rc == MDB_NOTFOUND && (flags & MDB_CREATE))) { - return rc; + } else { + if (rc != MDB_NOTFOUND || !(flags & MDB_CREATE)) + return rc; + if (F_ISSET(txn->mt_flags, MDB_TXN_RDONLY)) + return EACCES; } /* Done here so we cannot fail after creating a new DB */