47 lines
1.3 KiB
Diff
47 lines
1.3 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: lixiaokeng <lixiaokeng@huawei.com>
|
||
|
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 <mwilck@suse.com>
|
||
|
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
||
|
---
|
||
|
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)
|
||
|
--
|
||
|
2.17.2
|
||
|
|