From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: lixiaokeng Date: Sat, 23 Jan 2021 16:19:28 +0800 Subject: [PATCH] libmultipath: fix NULL dereference in find_path_by_dev When I test the 0.8.5 code with iscsi login/out, multipathd command and multipath command concurrently, there is a multipathd coredump. The stack is shown: uxlsnrloop ->cli_list_devices ->show_devices ->snprint_devices ->find_path_by_dev The reason is that devname is NULL in snprint_devices, then it will be dereference. Here we check dev in find_path_by_dev. Reviewed-by: Martin Wilck Signed-off-by: Benjamin Marzinski --- libmultipath/structs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libmultipath/structs.c b/libmultipath/structs.c index 464596fc..a3f27fd6 100644 --- a/libmultipath/structs.c +++ b/libmultipath/structs.c @@ -453,12 +453,12 @@ find_mp_by_str (const struct _vector *mpvec, const char * str) } struct path * -find_path_by_dev (const struct _vector *pathvec, const char * dev) +find_path_by_dev (const struct _vector *pathvec, const char *dev) { int i; struct path * pp; - if (!pathvec) + if (!pathvec || !dev) return NULL; vector_foreach_slot (pathvec, pp, i)