(ITS#8937) Possibly wrong MDB_DUPFIXED flag check
by juerg.bircher@gmail.com
Full_Name: Juerg Bircher
Version: LMDB master
OS: macOS
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (178.83.86.107)
In mdb_cursor_put the flag MDB_DUPFIXED is checked on line 7628 as follows:
if ((mc->mc_db->md_flags & (MDB_DUPSORT|MDB_DUPFIXED))
== MDB_DUPFIXED)
np->mp_flags |= P_LEAF2;
Should it not be like this:
if (mc->mc_db->md_flags & MDB_DUPFIXED)
np->mp_flags |= P_LEAF2;
According to the documentation:
* <li>#MDB_DUPFIXED
* This flag may only be used in combination with #MDB_DUPSORT.
So the expression (mc->mc_db->md_flags & (MDB_DUPSORT|MDB_DUPFIXED)) ==
MDB_DUPFIXED) would never match.