We check the return value of udev_device_get_parent and udev_device_get_sysname. Signed-off-by:lixiaokeng<lixiaokeng@xxxxxxxxxx> Signed-off-by: Zhiqiang Liu <liuzhiqiang26@xxxxxxxxxx> Signed-off-by: Linfeilong <linfeilong@xxxxxxxxxx> --- libmultipath/discovery.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c index 27cb67f8..c490dddb 100644 --- a/libmultipath/discovery.c +++ b/libmultipath/discovery.c @@ -356,7 +356,7 @@ sysfs_get_tgt_nodename(struct path *pp, char *node) tgtdev = udev_device_get_parent(parent); while (tgtdev) { tgtname = udev_device_get_sysname(tgtdev); - if (sscanf(tgtname, "end_device-%d:%d", + if (tgtname && sscanf(tgtname, "end_device-%d:%d", &host, &tgtid) == 2) break; tgtdev = udev_device_get_parent(tgtdev); @@ -389,7 +389,7 @@ sysfs_get_tgt_nodename(struct path *pp, char *node) /* Check for FibreChannel */ tgtdev = udev_device_get_parent(parent); value = udev_device_get_sysname(tgtdev); - if (sscanf(value, "rport-%d:%d-%d", + if (value && sscanf(value, "rport-%d:%d-%d", &host, &channel, &tgtid) == 3) { tgtdev = udev_device_new_from_subsystem_sysname(udev, "fc_remote_ports", value); -- -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel