mdbx: доработка контроля длины ключа внутри cursor_set() (backport).

Ранее проверка внутри cursor_set() не позволяла искать ключи длиннее чем можно поместить в таблицу,
что при поиске/позиционировании не является ошибкой для ключей переменного размера.
This commit is contained in:
Леонид Юрьев (Leonid Yuriev) 2025-02-27 21:25:34 +03:00
parent 40a474e9b3
commit a5c5e77c03

View File

@ -16520,7 +16520,8 @@ cursor_set(MDBX_cursor *mc, MDBX_val *key, MDBX_val *data, MDBX_cursor_op op) {
struct cursor_set_result ret;
ret.exact = false;
if (unlikely(key->iov_len < mc->mc_dbx->md_klen_min ||
key->iov_len > mc->mc_dbx->md_klen_max)) {
(key->iov_len > mc->mc_dbx->md_klen_max &&
(mc->mc_dbx->md_klen_min == mc->mc_dbx->md_klen_max || MDBX_DEBUG || MDBX_FORCE_ASSERTIONS)))) {
cASSERT(mc, !"Invalid key-size");
ret.err = MDBX_BAD_VALSIZE;
return ret;