diff options
author | Christophe Varoqui <root@xa-s05.(none)> | 2005-12-09 16:54:48 +0100 |
---|---|---|
committer | Christophe Varoqui <root@xa-s05.(none)> | 2005-12-09 16:54:48 +0100 |
commit | 7fe3b9253292380de3811739799f430ce47303e7 (patch) | |
tree | bb46375833788ef9fb03e078514ec9905965e1d3 /kpartx | |
parent | 75c8de24717de5e987dc5a0be416957737469af2 (diff) | |
download | multipath-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.c | 7 |
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; |