]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#10522 lmdb: fix prev commit
authorHoward Chu <hyc@openldap.org>
Wed, 24 Jun 2026 20:19:33 +0000 (21:19 +0100)
committerHoward Chu <hyc@openldap.org>
Wed, 24 Jun 2026 20:19:58 +0000 (21:19 +0100)
libraries/liblmdb/mdb.c

index 0ca6c400d4a9ce2349c0c27086dcd2971f089a4c..eec83654dc860fe1b32fc736eb54869cb2c64b80 100644 (file)
@@ -8580,11 +8580,12 @@ _mdb_cursor_put(MDB_cursor *mc, MDB_val *key, MDB_val *data,
        if (key->mv_size-1 >= ENV_MAXKEY(env))
                return MDB_BAD_VALSIZE;
 
+       if (mc->mc_db->md_flags & MDB_DUPSORT) {
+               if (!data->mv_size || data->mv_size > ENV_MAXKEY(env))
+                       return MDB_BAD_VALSIZE;
+       }
 #if SIZE_MAX > 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-1 >= ENV_MAXKEY(env))
+       if (data->mv_size > MAXDATASIZE)
                return MDB_BAD_VALSIZE;
 #endif