diff --git a/WHATS_NEW b/WHATS_NEW index dfa50e841..e7c9b0469 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.107 - ================================== + Use proper libmem mempool for allocation of unknown segment name. Add --readonly to reporting and display tools for lock-free metadata access. Add locking_type 5 for dummy locking for tools that do not need any locks. Fix _recover_vg() error path when lock conversion fails. diff --git a/lib/unknown/unknown.c b/lib/unknown/unknown.c index f2a65eb82..848a3694e 100644 --- a/lib/unknown/unknown.c +++ b/lib/unknown/unknown.c @@ -95,7 +95,7 @@ struct segment_type *init_unknown_segtype(struct cmd_context *cmd, const char *n segtype->cmd = cmd; segtype->ops = &_unknown_ops; - segtype->name = dm_pool_strdup(cmd->mem, name); + segtype->name = dm_pool_strdup(cmd->libmem, name); segtype->private = NULL; segtype->flags = SEG_UNKNOWN | SEG_VIRTUAL | SEG_CANNOT_BE_ZEROED; diff --git a/test/shell/unknown-segment.sh b/test/shell/unknown-segment.sh index 8ec48d22d..b4a5dfda6 100644 --- a/test/shell/unknown-segment.sh +++ b/test/shell/unknown-segment.sh @@ -23,6 +23,10 @@ vgcfgrestore -f bak0 $vg # we have on-disk metadata with unknown segments now not lvchange -aey $vg/$lv1 # check that activation is refused +# try once more to catch invalid memory access with valgrind +# when clvmd flushes cmd mem pool +not lvchange -aey $vg/$lv1 # check that activation is refused + vgcfgbackup -f bak1 $vg cat bak1 sed -e 's,unstriped,striped,;s,unmirror,mirror,' -i.orig bak1