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

(ITS#8937) Possibly wrong MDB_DUPFIXED flag check



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.