]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#10522 LMDB: reject 0-length values in DUPSORT DBs
authorHoward Chu <hyc@openldap.org>
Fri, 12 Jun 2026 14:12:00 +0000 (15:12 +0100)
committerHoward Chu <hyc@openldap.org>
Fri, 12 Jun 2026 14:12:32 +0000 (15:12 +0100)
libraries/liblmdb/mdb.c

index 7c099a2aa06ffbc2caf0534d9ecbda8ec350faf2..f4f17d80cd616cdfeab24ebfd6a5f2ecd1c65d04 100644 (file)
@@ -8571,10 +8571,10 @@ _mdb_cursor_put(MDB_cursor *mc, MDB_val *key, MDB_val *data,
                return MDB_BAD_VALSIZE;
 
 #if SIZE_MAX > MAXDATASIZE
-       if (data->mv_size > ((mc->mc_db->md_flags & MDB_DUPSORT) ? ENV_MAXKEY(env) : MAXDATASIZE))
+       if (data->mv_size-1 >= ((mc->mc_db->md_flags & MDB_DUPSORT) ? ENV_MAXKEY(env) : MAXDATASIZE))
                return MDB_BAD_VALSIZE;
 #else
-       if ((mc->mc_db->md_flags & MDB_DUPSORT) && data->mv_size > ENV_MAXKEY(env))
+       if ((mc->mc_db->md_flags & MDB_DUPSORT) && data->mv_size-1 >= ENV_MAXKEY(env))
                return MDB_BAD_VALSIZE;
 #endif