From ea66039326203b23e3ae5d35e438aed31114bfea Mon Sep 17 00:00:00 2001 From: Michal Mielewczyk Date: Fri, 19 Apr 2019 02:41:58 -0400 Subject: [PATCH 1/2] Update OCF (secure alloc fix) Signed-off-by: Michal Mielewczyk --- ocf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocf b/ocf index 0b098dd..9f927de 160000 --- a/ocf +++ b/ocf @@ -1 +1 @@ -Subproject commit 0b098ddb80757b9d4118904fa6bc8f445f991bb1 +Subproject commit 9f927de841e82d07fda63c5ad3536620b536f5e0 From f62c53862dc43d4ba81871880969b80699283bbf Mon Sep 17 00:00:00 2001 From: Michal Mielewczyk Date: Thu, 18 Apr 2019 10:17:51 -0400 Subject: [PATCH 2/2] Add asserts in case of detached cache. Signed-off-by: Michal Mielewczyk --- modules/cas_cache/layer_cache_management.c | 13 ++++++++++--- modules/cas_cache/volume/vol_block_dev_top.c | 4 ++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/modules/cas_cache/layer_cache_management.c b/modules/cas_cache/layer_cache_management.c index 8a07d5c..4854bb0 100644 --- a/modules/cas_cache/layer_cache_management.c +++ b/modules/cas_cache/layer_cache_management.c @@ -1232,9 +1232,15 @@ int cache_mng_init_instance(struct ocf_mngt_cache_config *cfg, } if (cmd) { - ocf_volume_t cache_obj = ocf_cache_get_volume(cache); - struct bd_object *bd_cache_obj = bd_object(cache_obj); - struct block_device *bdev = bd_cache_obj->btm_bd; + ocf_volume_t cache_obj; + struct bd_object *bd_cache_obj; + struct block_device *bdev; + + cache_obj = ocf_cache_get_volume(cache); + BUG_ON(!cache_obj); + + bd_cache_obj = bd_object(cache_obj); + bdev = bd_cache_obj->btm_bd; /* If we deal with whole device, reread partitions */ if (bdev->bd_contains == bdev) @@ -1641,6 +1647,7 @@ int cache_mng_get_info(struct kcas_cache_info *info) if (info->info.attached) { uuid = ocf_cache_get_uuid(cache); + BUG_ON(!uuid); strlcpy(info->cache_path_name, uuid->data, min(sizeof(info->cache_path_name), uuid->size)); diff --git a/modules/cas_cache/volume/vol_block_dev_top.c b/modules/cas_cache/volume/vol_block_dev_top.c index ee5c693..84da64a 100644 --- a/modules/cas_cache/volume/vol_block_dev_top.c +++ b/modules/cas_cache/volume/vol_block_dev_top.c @@ -543,6 +543,8 @@ void _blockdev_set_exported_object_flush_fua(ocf_core_t core) struct request_queue *core_q, *exp_q, *cache_q; bool flush, fua; + BUG_ON(!cache_vol); + bd_core_vol = bd_object(core_vol); bd_cache_vol = bd_object(cache_vol); @@ -624,6 +626,8 @@ static int _blockdev_set_geometry(struct casdsk_disk *dsk, void *private) cache = ocf_core_get_cache(core); core_vol = ocf_core_get_volume(core); cache_vol = ocf_cache_get_volume(cache); + BUG_ON(!cache_vol); + bd_cache_vol = bd_object(cache_vol); path = ocf_volume_get_uuid(core_vol)->data;