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

(ITS#8117) Bugs related to key-size in lmdb and backend

Full_Name: Leo Yuriev
Version: 2.4-HEAD
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (

1) LMDB: On 64-bit systems, in some cases mdb_cmp_int() could be called instead
of mdb_cmp_long(), when key.mv_size == 8.
To reproduce this is enough add an assertion-check for key.size == sizeof(int)
into mdb_cmp_int().A%A
2) LMDB: There is no any checking for invalid key-size for MDB_INTEGERKEY and
MDB_INTEGERDUP. Therefore, for example, mdb_cursor_put() accepts a key.size == 1
and so forth.

3) lmdb-backend: AttributeDescription->ad_type->sat_equality->smr_indexer()
could generate a 5-byte sized ks.s. I can just imagine what this can create a
many problems. For instance, when I adds the control for key size, it breaks
test017-syncreplication-refresh. But I am not tested more.

It is a one more nice rebus from Howard ;)