mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
debug: extra validation of passed segment
Always check if passed segment really is correct cache segment. (Avoids derefernce of possibly NULL seg->pool_lv).
This commit is contained in:
parent
29c709f591
commit
cbdf514bbc
@ -282,9 +282,16 @@ static int _cache_add_target_line(struct dev_manager *dm,
|
|||||||
struct dm_tree_node *node, uint64_t len,
|
struct dm_tree_node *node, uint64_t len,
|
||||||
uint32_t *pvmove_mirror_count __attribute__((unused)))
|
uint32_t *pvmove_mirror_count __attribute__((unused)))
|
||||||
{
|
{
|
||||||
struct lv_segment *cache_pool_seg = first_seg(seg->pool_lv);
|
struct lv_segment *cache_pool_seg;
|
||||||
char *metadata_uuid, *data_uuid, *origin_uuid;
|
char *metadata_uuid, *data_uuid, *origin_uuid;
|
||||||
|
|
||||||
|
if (!seg->pool_lv || !seg_is_cache(seg)) {
|
||||||
|
log_error(INTERNAL_ERROR "Passed segment is not cache.");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
cache_pool_seg = first_seg(seg->pool_lv);
|
||||||
|
|
||||||
if (!(metadata_uuid = build_dm_uuid(mem, cache_pool_seg->metadata_lv, NULL)))
|
if (!(metadata_uuid = build_dm_uuid(mem, cache_pool_seg->metadata_lv, NULL)))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user