device-mapper-multipath-0.8.2-3

Add 0031-multipath-fix-issues-found-by-compiling-with-gcc-10.patch
  * Patch submitted upstream
Resolves bz #1799276
This commit is contained in:
Benjamin Marzinski 2020-02-12 17:05:28 -06:00
parent 89934ae046
commit 6b2237f96e
2 changed files with 126 additions and 1 deletions

View File

@ -0,0 +1,119 @@
From b665961ce1acc273b936ef8593e328c413d35ba7 Mon Sep 17 00:00:00 2001
From: Benjamin Marzinski <bmarzins@redhat.com>
Date: Tue, 11 Feb 2020 17:01:08 -0600
Subject: [PATCH] multipath: fix issues found by compiling with gcc 10
Compiling with gcc 10 raised a number of warings about buffer sizes,
and an error based on declaring ___error1___ in multiple c files,
do to it being in structs.h. fix these
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
kpartx/dasd.c | 6 +++---
libmultipath/print.c | 3 ++-
libmultipath/structs.c | 6 ++++++
libmultipath/structs.h | 5 -----
multipath/main.c | 2 +-
5 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/kpartx/dasd.c b/kpartx/dasd.c
index d95d8ca0..42986e78 100644
--- a/kpartx/dasd.c
+++ b/kpartx/dasd.c
@@ -188,7 +188,7 @@ read_dasd_pt(int fd, struct slice all, struct slice *sp, int ns)
goto out;
}
- if ((!info.FBA_layout) && (!strcmp(info.type, "ECKD")))
+ if ((!info.FBA_layout) && (!strncmp(info.type, "ECKD", 4)))
memcpy (&vlabel, data, sizeof(vlabel));
else {
bzero(&vlabel,4);
@@ -218,7 +218,7 @@ read_dasd_pt(int fd, struct slice all, struct slice *sp, int ns)
sp[0].size = size - sp[0].start;
retval = 1;
} else if ((strncmp(type, "VOL1", 4) == 0) &&
- (!info.FBA_layout) && (!strcmp(info.type, "ECKD"))) {
+ (!info.FBA_layout) && (!strncmp(info.type, "ECKD",4))) {
/*
* New style VOL1 labeled disk
*/
@@ -267,7 +267,7 @@ read_dasd_pt(int fd, struct slice all, struct slice *sp, int ns)
if (vlabel.ldl_version == 0xf2) {
fmt_size = sectors512(vlabel.formatted_blocks,
blocksize);
- } else if (!strcmp(info.type, "ECKD")) {
+ } else if (!strncmp(info.type, "ECKD",4)) {
/* formatted w/o large volume support */
fmt_size = geo.cylinders * geo.heads
* geo.sectors * (blocksize >> 9);
diff --git a/libmultipath/print.c b/libmultipath/print.c
index 907469ad..61e123de 100644
--- a/libmultipath/print.c
+++ b/libmultipath/print.c
@@ -29,6 +29,7 @@
#include "uevent.h"
#include "debug.h"
#include "discovery.h"
+#include "util.h"
#define MAX(x,y) (((x) > (y)) ? (x) : (y))
#define MIN(x,y) (((x) > (y)) ? (y) : (x))
@@ -2028,7 +2029,7 @@ int snprint_devices(struct config *conf, char * buff, int len,
devptr = devpath + 11;
*devptr = '\0';
- strncat(devptr, blkdev->d_name, PATH_MAX-12);
+ strlcpy(devptr, blkdev->d_name, PATH_MAX-11);
if (stat(devpath, &statbuf) < 0)
continue;
diff --git a/libmultipath/structs.c b/libmultipath/structs.c
index bf7fdd73..46e8bb18 100644
--- a/libmultipath/structs.c
+++ b/libmultipath/structs.c
@@ -20,6 +20,12 @@
#include "prioritizers/alua_spc3.h"
#include "dm-generic.h"
+/*
+ * _FIND_MULTIPATHS_F must have the same value as YNU_YES.
+ * Generate a compile time error if that isn't the case.
+ */
+char ___error1___[-(_FIND_MULTIPATHS_F != YNU_YES)];
+
struct adapter_group *
alloc_adaptergroup(void)
{
diff --git a/libmultipath/structs.h b/libmultipath/structs.h
index a3adf906..191a5945 100644
--- a/libmultipath/structs.h
+++ b/libmultipath/structs.h
@@ -102,11 +102,6 @@ enum yes_no_undef_states {
#define _FIND_MULTIPATHS_F (1 << 1)
#define _FIND_MULTIPATHS_I (1 << 2)
#define _FIND_MULTIPATHS_N (1 << 3)
-/*
- * _FIND_MULTIPATHS_F must have the same value as YNU_YES.
- * Generate a compile time error if that isn't the case.
- */
-char ___error1___[-(_FIND_MULTIPATHS_F != YNU_YES)];
#define find_multipaths_on(conf) \
(!!((conf)->find_multipaths & _FIND_MULTIPATHS_F))
diff --git a/multipath/main.c b/multipath/main.c
index 22aff7be..ed214183 100644
--- a/multipath/main.c
+++ b/multipath/main.c
@@ -1029,7 +1029,7 @@ main (int argc, char *argv[])
if (!dev)
goto out;
- strncpy(dev, argv[optind], FILE_NAME_SIZE);
+ strlcpy(dev, argv[optind], FILE_NAME_SIZE);
if (dev_type != DEV_UEVENT)
dev_type = get_dev_type(dev);
if (dev_type == DEV_NONE) {
--
2.17.2

View File

@ -1,6 +1,6 @@
Name: device-mapper-multipath
Version: 0.8.2
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Tools to manage multipath devices using device-mapper
License: GPLv2
URL: http://christophe.varoqui.free.fr/
@ -40,6 +40,7 @@ Patch0027: 0027-RH-warn-on-invalid-regex-instead-of-failing.patch
Patch0028: 0028-RH-reset-default-find_mutipaths-value-to-off.patch
Patch0029: 0029-RH-Fix-nvme-compilation-warning.patch
Patch0030: 0030-RH-attempt-to-get-ANA-info-via-sysfs-first.patch
Patch0031: 0031-multipath-fix-issues-found-by-compiling-with-gcc-10.patch
# runtime
Requires: %{name}-libs = %{version}-%{release}
@ -234,6 +235,11 @@ fi
%{_pkgconfdir}/libdmmp.pc
%changelog
* Wed Feb 12 2020 Benjamin Marzinski <bmarzins@redhat.com> - 0.8.2-3
- Add 0031-multipath-fix-issues-found-by-compiling-with-gcc-10.patch
* Patch submitted upstream
- Resolves bz #1799276
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.8.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild