!7 backport bugfix from community
Merge pull request !7 from ethan848/master
This commit is contained in:
commit
b6a5d21702
41
6029-libmultipath-fix-files-read-from-config_dir.patch
Normal file
41
6029-libmultipath-fix-files-read-from-config_dir.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From dbd6e0f8ad3d145c73175a6f99eab401408d9d54 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Enzo Matsumiya <ematsumiya@suse.de>
|
||||||
|
Date: Fri, 7 Feb 2020 11:45:25 -0300
|
||||||
|
Subject: [PATCH] libmultipath: fix files read from config_dir
|
||||||
|
|
||||||
|
If config_dir contains a file named, for example, "some.conf.backup", this file
|
||||||
|
will still be loaded by multipath because process_config_dir()
|
||||||
|
(libmultipath/config.c) uses strstr() to check for the ".conf" extension, but
|
||||||
|
that doesn't guarantee that ".conf" is at the end of the filename.
|
||||||
|
|
||||||
|
This patch will make sure that only files ending in ".conf" are loaded from
|
||||||
|
config_dir.
|
||||||
|
|
||||||
|
This is to comply with config_dir entry description in man 5 multipath.conf.
|
||||||
|
|
||||||
|
Signed-off-by: Enzo Matsumiya <ematsumiya@suse.de>
|
||||||
|
---
|
||||||
|
libmultipath/config.c | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/libmultipath/config.c b/libmultipath/config.c
|
||||||
|
index 5af7af5..7c641a3 100644
|
||||||
|
--- a/libmultipath/config.c
|
||||||
|
+++ b/libmultipath/config.c
|
||||||
|
@@ -669,8 +669,11 @@ process_config_dir(struct config *conf, vector keywords, char *dir)
|
||||||
|
sr.n = n;
|
||||||
|
pthread_cleanup_push_cast(free_scandir_result, &sr);
|
||||||
|
for (i = 0; i < n; i++) {
|
||||||
|
- if (!strstr(namelist[i]->d_name, ".conf"))
|
||||||
|
+ char *ext = strrchr(namelist[i]->d_name, '.');
|
||||||
|
+
|
||||||
|
+ if (!ext || strcmp(ext, ".conf"))
|
||||||
|
continue;
|
||||||
|
+
|
||||||
|
old_hwtable_size = VECTOR_SIZE(conf->hwtable);
|
||||||
|
snprintf(path, LINE_MAX, "%s/%s", dir, namelist[i]->d_name);
|
||||||
|
path[LINE_MAX-1] = '\0';
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
|
|
||||||
50
6030-libmultipath-fix-sgio_get_vpd-looping.patch
Normal file
50
6030-libmultipath-fix-sgio_get_vpd-looping.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
From b3d65f57bc63ccfc52b89adb7ab7c0bc659c00af Mon Sep 17 00:00:00 2001
|
||||||
|
From: Benjamin Marzinski <bmarzins@redhat.com>
|
||||||
|
Date: Wed, 19 Feb 2020 00:48:29 -0600
|
||||||
|
Subject: [PATCH] libmultipath: fix sgio_get_vpd looping
|
||||||
|
|
||||||
|
If do_inq returns a page with a length that is less than maxlen, but
|
||||||
|
larger than DEFAULT_SGIO_LEN, this function will loop forever. Also
|
||||||
|
if do_inq returns with a length equal to or greater than maxlen,
|
||||||
|
sgio_get_vpd will exit immediately, even if it hasn't read the entire
|
||||||
|
page. Fix these issues, modify the tests to verify the new behavior.
|
||||||
|
|
||||||
|
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
||||||
|
---
|
||||||
|
libmultipath/discovery.c | 12 ++++++------
|
||||||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
|
||||||
|
index a4769ee..400959d 100644
|
||||||
|
--- a/libmultipath/discovery.c
|
||||||
|
+++ b/libmultipath/discovery.c
|
||||||
|
@@ -956,6 +956,7 @@ static int
|
||||||
|
sgio_get_vpd (unsigned char * buff, int maxlen, int fd, int pg)
|
||||||
|
{
|
||||||
|
int len = DEFAULT_SGIO_LEN;
|
||||||
|
+ int rlen;
|
||||||
|
|
||||||
|
if (fd < 0) {
|
||||||
|
errno = EBADF;
|
||||||
|
@@ -963,12 +964,11 @@ sgio_get_vpd (unsigned char * buff, int maxlen, int fd, int pg)
|
||||||
|
}
|
||||||
|
retry:
|
||||||
|
if (0 == do_inq(fd, 0, 1, pg, buff, len)) {
|
||||||
|
- len = get_unaligned_be16(&buff[2]) + 4;
|
||||||
|
- if (len >= maxlen)
|
||||||
|
- return len;
|
||||||
|
- if (len > DEFAULT_SGIO_LEN)
|
||||||
|
- goto retry;
|
||||||
|
- return len;
|
||||||
|
+ rlen = get_unaligned_be16(&buff[2]) + 4;
|
||||||
|
+ if (rlen <= len || len >= maxlen)
|
||||||
|
+ return rlen;
|
||||||
|
+ len = (rlen < maxlen)? rlen : maxlen;
|
||||||
|
+ goto retry;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
Name: multipath-tools
|
Name: multipath-tools
|
||||||
Version: 0.7.7
|
Version: 0.7.7
|
||||||
Release: 17
|
Release: 18
|
||||||
Summary: Tools to manage multipath devices with the device-mapper
|
Summary: Tools to manage multipath devices with the device-mapper
|
||||||
License: GPLv2-or-later and LGPLv2+
|
License: GPLv2-or-later and LGPLv2+
|
||||||
URL: http://christophe.varoqui.free.fr/
|
URL: http://christophe.varoqui.free.fr/
|
||||||
@ -68,6 +68,8 @@ Patch6025: 6025-libmultipath-fix-another-WWID-overflow-in-parse_vpd_.patch
|
|||||||
Patch6026: 6026-libmultipath-fix-possible-WWID-overflow-in-parse_vpd.patch
|
Patch6026: 6026-libmultipath-fix-possible-WWID-overflow-in-parse_vpd.patch
|
||||||
Patch6027: 6027-libmultipath-fix-parsing-of-SCSI-name-string-iqn-for.patch
|
Patch6027: 6027-libmultipath-fix-parsing-of-SCSI-name-string-iqn-for.patch
|
||||||
Patch6028: 6028-libmultipath-fix-double-free-in-pgpolicyfn-error-pat.patch
|
Patch6028: 6028-libmultipath-fix-double-free-in-pgpolicyfn-error-pat.patch
|
||||||
|
Patch6029: 6029-libmultipath-fix-files-read-from-config_dir.patch
|
||||||
|
Patch6030: 6030-libmultipath-fix-sgio_get_vpd-looping.patch
|
||||||
|
|
||||||
|
|
||||||
BuildRequires: gcc, libaio-devel, userspace-rcu-devel, device-mapper-devel >= 1.02.89
|
BuildRequires: gcc, libaio-devel, userspace-rcu-devel, device-mapper-devel >= 1.02.89
|
||||||
@ -209,6 +211,12 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sat May 28 2020 ethan848 <mingfangsen@huawei.com> - 0.7.7-18
|
||||||
|
- Type:bugfix
|
||||||
|
- ID:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DESC:backport bugfix from community
|
||||||
|
|
||||||
* Thu Mar 19 2020 hy-euler <eulerstoragemt@huawei.com> - 0.7.7-17
|
* Thu Mar 19 2020 hy-euler <eulerstoragemt@huawei.com> - 0.7.7-17
|
||||||
- Type:enhancement
|
- Type:enhancement
|
||||||
- ID:NA
|
- ID:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user