]> git.sur5r.net Git - openldap/commitdiff
ITS#8117 fix INTEGERDUP compare
authorHoward Chu <hyc@openldap.org>
Wed, 29 Apr 2015 16:12:40 +0000 (17:12 +0100)
committerHoward Chu <hyc@openldap.org>
Wed, 29 Apr 2015 16:12:40 +0000 (17:12 +0100)
libraries/liblmdb/mdb.c

index fe651509f8a1debc766c95fdfeb8a4a48806f677..acb0e449f5dd56cba824dfe6b068ab5bb59fd101 100644 (file)
@@ -7076,6 +7076,12 @@ mdb_xcursor_init1(MDB_cursor *mc, MDB_node *node)
                                mx->mx_db.md_flags |= MDB_INTEGERKEY;
                }
        }
+#if UINT_MAX < SIZE_MAX
+       if (mc->mc_dbx->md_dcmp == mdb_cmp_int && mx->mx_db.md_pad == sizeof(size_t)) {
+               mc->mc_dbx->md_dcmp = mdb_cmp_clong;
+               mx->mx_dbx.md_cmp = mdb_cmp_clong;
+       }
+#endif
        DPRINTF(("Sub-db -%u root page %"Z"u", mx->mx_cursor.mc_dbi,
                mx->mx_db.md_root));
        mx->mx_dbflag = DB_VALID|DB_DIRTY; /* DB_DIRTY guides mdb_cursor_touch */