summaryrefslogtreecommitdiff
path: root/kpartx
diff options
context:
space:
mode:
authorChristophe Varoqui <root@xa-s05.(none)>2005-12-09 16:54:48 +0100
committerChristophe Varoqui <root@xa-s05.(none)>2005-12-09 16:54:48 +0100
commit7fe3b9253292380de3811739799f430ce47303e7 (patch)
treebb46375833788ef9fb03e078514ec9905965e1d3 /kpartx
parent75c8de24717de5e987dc5a0be416957737469af2 (diff)
downloadmultipath-tools-7fe3b9253292380de3811739799f430ce47303e7.tar.gz
multipath-tools-7fe3b9253292380de3811739799f430ce47303e7.tar.bz2
multipath-tools-7fe3b9253292380de3811739799f430ce47303e7.zip
[devmapper] Check mapname length
dm_task_get_name might return a zero-length string, which also seem to indicate an invalid mapname. Fix dm_mapname() to always return NULL if either no mapname or an zero-length mapname was returned. Signed-off-by: Hannes Reinecke <hare@suse.de>
Diffstat (limited to 'kpartx')
-rw-r--r--kpartx/devmapper.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/kpartx/devmapper.c b/kpartx/devmapper.c
index c4321b1..84b6c72 100644
--- a/kpartx/devmapper.c
+++ b/kpartx/devmapper.c
@@ -123,7 +123,7 @@ const char *
dm_mapname(int major, int minor)
{
struct dm_task *dmt;
- const char *mapname;
+ const char *mapname = NULL, *map;
if (!(dmt = dm_task_create(DM_DEVICE_INFO)))
return NULL;
@@ -135,7 +135,10 @@ dm_mapname(int major, int minor)
if (!dm_task_run(dmt))
goto out;
- mapname = strdup(dm_task_get_name(dmt));
+ map = dm_task_get_name(dmt);
+ if (map && strlen(map))
+ mapname = strdup(map);
+
out:
dm_task_destroy(dmt);
return mapname;