From: Hallvard Furuseth Date: Wed, 14 Jan 2015 07:12:50 +0000 (+0100) Subject: mdb_env_set_flags(): Reject CHANGELESS flags. X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=404697b369bf6eacab02f68113eeafaaaef85d27;p=openldap mdb_env_set_flags(): Reject CHANGELESS flags. Reverts part of a2ac10107e2fb845c4a38a339239063ec4407d84. MDB_ROBUST needed to be accepted, but that flag is gone. --- diff --git a/libraries/liblmdb/lmdb.h b/libraries/liblmdb/lmdb.h index ebfbc5dc82..e95fff344b 100644 --- a/libraries/liblmdb/lmdb.h +++ b/libraries/liblmdb/lmdb.h @@ -736,7 +736,6 @@ void mdb_env_close(MDB_env *env); * This may be used to set some flags in addition to those from * #mdb_env_open(), or to unset these flags. If several threads * change the flags at the same time, the result is undefined. - * Most flags cannot be changed after #mdb_env_open(). * @param[in] env An environment handle returned by #mdb_env_create() * @param[in] flags The flags to change, bitwise OR'ed together * @param[in] onoff A non-zero value sets the flags, zero clears them. diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c index c4dc269037..e2aa170357 100644 --- a/libraries/liblmdb/mdb.c +++ b/libraries/liblmdb/mdb.c @@ -9001,7 +9001,7 @@ mdb_env_copy(MDB_env *env, const char *path) int ESECT mdb_env_set_flags(MDB_env *env, unsigned int flag, int onoff) { - if (flag & (env->me_map ? ~CHANGEABLE : ~(CHANGEABLE|CHANGELESS))) + if ((flag & CHANGEABLE) != flag) return EINVAL; if (onoff) env->me_flags |= flag;