From 1c7a5e18feea46003c0878e4e80b7e7d4dbdefeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=BE=D0=BD=D0=B8=D0=B4=20=D0=AE=D1=80=D1=8C?= =?UTF-8?q?=D0=B5=D0=B2=20=28Leonid=20Yuriev=29?= Date: Thu, 24 Apr 2025 11:15:55 +0300 Subject: [PATCH] =?UTF-8?q?mdbx:=20=D0=BF=D0=BE=D0=B4=D1=81=D0=BA=D0=B0?= =?UTF-8?q?=D0=B7=D0=BA=D0=B8=20=D0=B4=D0=BB=D1=8F=20coverity.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dpl.c | 2 ++ src/dxb.c | 1 + src/txn-basal.c | 1 + src/txn-nested.c | 1 + 4 files changed, 5 insertions(+) diff --git a/src/dpl.c b/src/dpl.c index 41d35797..c48f8553 100644 --- a/src/dpl.c +++ b/src/dpl.c @@ -65,6 +65,8 @@ int dpl_alloc(MDBX_txn *txn) { unlikely(!dpl_reserve(txn, wanna))) return MDBX_ENOMEM; + /* LY: wr.dirtylist не может быть nullptr, так как либо уже выделен, либо будет выделен в dpl_reserve(). */ + /* coverity[var_deref_model] */ dpl_clear(txn->wr.dirtylist); return MDBX_SUCCESS; } diff --git a/src/dxb.c b/src/dxb.c index e18e28d0..e65323ff 100644 --- a/src/dxb.c +++ b/src/dxb.c @@ -1290,6 +1290,7 @@ int dxb_sync_locked(MDBX_env *env, unsigned flags, meta_t *const pending, troika } uint64_t timestamp = 0; + /* coverity[array_null] */ while ("workaround for https://libmdbx.dqdkfa.ru/dead-github/issues/269") { rc = coherency_check_written(env, pending->unsafe_txnid, target, bytes2pgno(env, ptr_dist(target, env->dxb_mmap.base)), ×tamp); diff --git a/src/txn-basal.c b/src/txn-basal.c index 26506872..41afc209 100644 --- a/src/txn-basal.c +++ b/src/txn-basal.c @@ -95,6 +95,7 @@ int txn_basal_start(MDBX_txn *txn, unsigned flags) { txn->wr.troika = meta_tap(env); const meta_ptr_t head = meta_recent(env, &txn->wr.troika); uint64_t timestamp = 0; + /* coverity[array_null] */ while ("workaround for https://libmdbx.dqdkfa.ru/dead-github/issues/269") { int err = coherency_fetch_head(txn, head, ×tamp); if (likely(err == MDBX_SUCCESS)) diff --git a/src/txn-nested.c b/src/txn-nested.c index 57a04de7..719e11ce 100644 --- a/src/txn-nested.c +++ b/src/txn-nested.c @@ -405,6 +405,7 @@ int txn_nested_create(MDBX_txn *parent, const MDBX_txn_flags_t flags) { tASSERT(txn, MDBX_PNL_ALLOCLEN(txn->wr.repnl) >= MDBX_PNL_GETSIZE(parent->wr.repnl)); memcpy(txn->wr.repnl, parent->wr.repnl, MDBX_PNL_SIZEOF(parent->wr.repnl)); + /* coverity[assignment_where_comparison_intended] */ tASSERT(txn, pnl_check_allocated(txn->wr.repnl, (txn->geo.first_unallocated /* LY: intentional assignment here, only for assertion */ = parent->geo.first_unallocated) -