We check the return value  of udev_device_get_devtype before
dereference it.

Signed-off-by:Lixiaokeng<lixiaok...@huawei.com>
Signed-off-by: Zhiqiang Liu <liuzhiqian...@huawei.com>
Signed-off-by: Linfeilong <linfeil...@huawei.com>
---
 libmultipath/configure.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libmultipath/configure.c b/libmultipath/configure.c
index 972cf5fe..7263707c 100644
--- a/libmultipath/configure.c
+++ b/libmultipath/configure.c
@@ -515,6 +515,7 @@ static void trigger_partitions_udev_change(struct 
udev_device *dev,
 {
        struct udev_enumerate *part_enum;
        struct udev_list_entry *item;
+       const char *devtype;

        part_enum = udev_enumerate_new(udev);
        if (!part_enum)
@@ -535,7 +536,8 @@ static void trigger_partitions_udev_change(struct 
udev_device *dev,
                if (!part)
                        continue;

-               if (!strcmp("partition", udev_device_get_devtype(part))) {
+               devtype = udev_device_get_devtype(part);
+               if (devtype && !strcmp("partition", devtype)) {
                        condlog(4, "%s: triggering %s event for %s", __func__,
                                action, syspath);
                        sysfs_attr_set_value(part, "uevent", action, len);
-- 

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to