[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#7661) LMDB: Can't get the current flags of MAIN_DBI



Full_Name: Salvador Ortiz
Version: 24
OS: Linux
URL: 
Submission from: (NULL) (187.162.45.111)


The API allows to set the flags of the unnamed db (MAIN_DBI), but try to get
them back fails with EINVAL. 

The fix is trivial:

--- a/libraries/liblmdb/mdb.c
+++ b/libraries/liblmdb/mdb.c
@@ -7871,7 +7871,7 @@ void mdb_dbi_close(MDB_env *env, MDB_dbi dbi)
 int mdb_dbi_flags(MDB_env *env, MDB_dbi dbi, unsigned int *flags)
 {
        /* We could return the flags for the FREE_DBI too but what's the point?
*/
-       if (dbi <= MAIN_DBI || dbi >= env->me_numdbs)
+       if (dbi < MAIN_DBI || dbi >= env->me_numdbs)
                return EINVAL;
        *flags = env->me_dbflags[dbi];
        return MDB_SUCCESS;