From 79d831ff9f72c1d963a93b85c777a96f47f000d8 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Wed, 29 Jun 2022 16:41:04 +0100 Subject: [PATCH] Pass MDB_RDONLY to the LMDB environment for readonly DBs --- ext/dba/dba_lmdb.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ext/dba/dba_lmdb.c b/ext/dba/dba_lmdb.c index 4de66dff984..75f9827a610 100644 --- a/ext/dba/dba_lmdb.c +++ b/ext/dba/dba_lmdb.c @@ -46,6 +46,11 @@ DBA_OPEN_FUNC(lmdb) ZEND_ASSERT(map_size >= 0); + /* Add readonly flag if DB is opened in read only mode */ + if (info->mode == DBA_READER) { + flags |= MDB_RDONLY; + } + rc = mdb_env_create(&env); if (rc) { *error = mdb_strerror(rc); @@ -69,7 +74,7 @@ DBA_OPEN_FUNC(lmdb) return FAILURE; } - rc = mdb_txn_begin(env, NULL, 0, &txn); + rc = mdb_txn_begin(env, NULL, /* flags */ MDB_RDONLY, &txn); if (rc) { mdb_env_close(env); *error = mdb_strerror(rc);