]> git.sur5r.net Git - openldap/commitdiff
ITS#7485 more size checks
authorHoward Chu <hyc@symas.com>
Mon, 14 Jan 2013 21:46:25 +0000 (13:46 -0800)
committerHoward Chu <hyc@symas.com>
Mon, 14 Jan 2013 21:46:25 +0000 (13:46 -0800)
libraries/liblmdb/mdb.c

index cae20de9ed8090616951ce903a2f32e59397e5bd..7cb7dc59950a46c8e3000cdcafcf8a28d06fe336 100644 (file)
@@ -4809,6 +4809,9 @@ mdb_cursor_put(MDB_cursor *mc, MDB_val *key, MDB_val *data,
        if (key->mv_size == 0 || key->mv_size > MDB_MAXKEYSIZE)
                return EINVAL;
 
+       if (F_ISSET(mc->mc_db->md_flags, MDB_DUPSORT) && data->mv_size > MDB_MAXKEYSIZE)
+               return EINVAL;
+
        DPRINTF("==> put db %u key [%s], size %zu, data size %zu",
                mc->mc_dbi, DKEY(key), key ? key->mv_size:0, data->mv_size);