From d4213e067dfff60c45347a90dae85748b20702d8 Mon Sep 17 00:00:00 2001 From: Vladimir Davydov <vdavydov@tarantool.org> Date: Mon, 7 Aug 2023 14:06:03 +0300 Subject: [PATCH] memtx: assert that space is not NULL in index_read_view_create This should suppress the following coverity issues: https://scan7.scan.coverity.com/reports.htm#v39198/p13437/fileInstanceId=146712118&defectInstanceId=18978766&mergedDefectId=1563095 https://scan7.scan.coverity.com/reports.htm#v39198/p13437/fileInstanceId=146712113&defectInstanceId=18978750&mergedDefectId=1563094 While we are at it, let's use space_by_id instead of space_cache_find because read view creation is a rare operation affecting all spaces so caching the last space by id doesn't make any sense. NO_DOC=code health NO_TEST=code health NO_CHANGELOG=code health (cherry picked from commit f2886dd0983c20b840a36ffb3be5585de6476e96) --- src/box/memtx_hash.cc | 3 ++- src/box/memtx_tree.cc | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/box/memtx_hash.cc b/src/box/memtx_hash.cc index d8313273e4..e22a17ec38 100644 --- a/src/box/memtx_hash.cc +++ b/src/box/memtx_hash.cc @@ -645,7 +645,8 @@ memtx_hash_index_create_read_view(struct index *base) free(rv); return NULL; } - struct space *space = space_cache_find(base->def->space_id); + struct space *space = space_by_id(base->def->space_id); + assert(space != NULL); memtx_tx_snapshot_cleaner_create(&rv->cleaner, space); rv->index = index; index_ref(base); diff --git a/src/box/memtx_tree.cc b/src/box/memtx_tree.cc index 3ccf95e514..24a054aff4 100644 --- a/src/box/memtx_tree.cc +++ b/src/box/memtx_tree.cc @@ -2008,7 +2008,8 @@ memtx_tree_index_create_read_view(struct index *base) free(rv); return NULL; } - struct space *space = space_cache_find(base->def->space_id); + struct space *space = space_by_id(base->def->space_id); + assert(space != NULL); memtx_tx_snapshot_cleaner_create(&rv->cleaner, space); rv->index = index; index_ref(base); -- GitLab