In ev_add_map(), if add_map_without_path() fails, the alias will have been freed by free_multipath(), so you can't access it anymore. Also, if the multipath device already exists, but you fail to register it, there's no point in trying to create the device. It will fail. Signed-off-by: Benjamin Marzinski <bmarzins@xxxxxxxxxx> --- multipathd/main.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/multipathd/main.c b/multipathd/main.c index aac8a19..62339ae 100644 --- a/multipathd/main.c +++ b/multipathd/main.c @@ -314,10 +314,15 @@ ev_add_map (char * dev, char * alias, struct vectors * vecs) /* * now we can register the map */ - if (map_present && (mpp = add_map_without_path(vecs, alias))) { - sync_map_state(mpp); - condlog(2, "%s: devmap %s registered", alias, dev); - return 0; + if (map_present) { + if ((mpp = add_map_without_path(vecs, alias))) { + sync_map_state(mpp); + condlog(2, "%s: devmap %s registered", alias, dev); + return 0; + } else { + condlog(2, "%s: uev_add_map failed", dev); + return 1; + } } r = get_refwwid(dev, DEV_DEVMAP, vecs->pathvec, &refwwid); -- 1.8.3.1 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel