device-mapper-multipath-0.9.9-3
Add 0015-libmultipath-fix-ontap-prioritizer-snprintf-limits.patch Resolves: RHEL-49747
This commit is contained in:
parent
73bc951c61
commit
0a99429874
@ -0,0 +1,77 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Benjamin Marzinski <bmarzins@redhat.com>
|
||||||
|
Date: Wed, 7 Aug 2024 18:59:10 -0400
|
||||||
|
Subject: [PATCH] libmultipath: fix ontap prioritizer snprintf limits
|
||||||
|
|
||||||
|
The ontap prioritizer functions dump_cdb() and process_sg_error() both
|
||||||
|
incorrectly set the snprintf() limits larger than the available space.
|
||||||
|
Instead of multiplying the number of elements to print by the size of an
|
||||||
|
element to calculate the limit, they multiplied the number of elements
|
||||||
|
to print by the maximum number of elements that the buffer could hold.
|
||||||
|
|
||||||
|
Fix this by making these functions use strbufs instead.
|
||||||
|
|
||||||
|
mwilck: removed log message in print_strbuf() failure case.
|
||||||
|
|
||||||
|
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
||||||
|
Reviewed-by: Martin Wilck <mwilck@suse.com>
|
||||||
|
Signed-off-by: Martin Wilck <mwilck@suse.com>
|
||||||
|
---
|
||||||
|
libmultipath/prioritizers/ontap.c | 24 +++++++++++-------------
|
||||||
|
1 file changed, 11 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libmultipath/prioritizers/ontap.c b/libmultipath/prioritizers/ontap.c
|
||||||
|
index 117886ea..90eaf274 100644
|
||||||
|
--- a/libmultipath/prioritizers/ontap.c
|
||||||
|
+++ b/libmultipath/prioritizers/ontap.c
|
||||||
|
@@ -23,6 +23,7 @@
|
||||||
|
#include "prio.h"
|
||||||
|
#include "structs.h"
|
||||||
|
#include "unaligned.h"
|
||||||
|
+#include "strbuf.h"
|
||||||
|
|
||||||
|
#define INQUIRY_CMD 0x12
|
||||||
|
#define INQUIRY_CMDLEN 6
|
||||||
|
@@ -35,32 +36,29 @@
|
||||||
|
static void dump_cdb(unsigned char *cdb, int size)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
- char buf[10*5+1];
|
||||||
|
- char * p = &buf[0];
|
||||||
|
+ STRBUF_ON_STACK(buf);
|
||||||
|
|
||||||
|
- condlog(0, "- SCSI CDB: ");
|
||||||
|
- for (i=0; i<size; i++) {
|
||||||
|
- p += snprintf(p, 10*(size-i), "0x%02x ", cdb[i]);
|
||||||
|
+ for (i = 0; i < size; i++) {
|
||||||
|
+ if (print_strbuf(&buf, "0x%02x ", cdb[i]) < 0)
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
- condlog(0, "%s", buf);
|
||||||
|
+ condlog(0, "- SCSI CDB: %s", get_strbuf_str(&buf));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void process_sg_error(struct sg_io_hdr *io_hdr)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
- char buf[128*5+1];
|
||||||
|
- char * p = &buf[0];
|
||||||
|
+ STRBUF_ON_STACK(buf);
|
||||||
|
|
||||||
|
condlog(0, "- masked_status=0x%02x, host_status=0x%02x, "
|
||||||
|
"driver_status=0x%02x", io_hdr->masked_status,
|
||||||
|
io_hdr->host_status, io_hdr->driver_status);
|
||||||
|
if (io_hdr->sb_len_wr > 0) {
|
||||||
|
- condlog(0, "- SCSI sense data: ");
|
||||||
|
- for (i=0; i<io_hdr->sb_len_wr; i++) {
|
||||||
|
- p += snprintf(p, 128*(io_hdr->sb_len_wr-i), "0x%02x ",
|
||||||
|
- io_hdr->sbp[i]);
|
||||||
|
+ for (i = 0; i < io_hdr->sb_len_wr; i++) {
|
||||||
|
+ if (print_strbuf(&buf, "0x%02x ", io_hdr->sbp[i]) < 0)
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
- condlog(0, "%s", buf);
|
||||||
|
+ condlog(0, "- SCSI sense data: %s", get_strbuf_str(&buf));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: device-mapper-multipath
|
Name: device-mapper-multipath
|
||||||
Version: 0.9.9
|
Version: 0.9.9
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: Tools to manage multipath devices using device-mapper
|
Summary: Tools to manage multipath devices using device-mapper
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
URL: http://christophe.varoqui.free.fr/
|
URL: http://christophe.varoqui.free.fr/
|
||||||
@ -24,6 +24,7 @@ Patch0011: 0011-RH-make-parse_vpd_pg83-match-scsi_id-output.patch
|
|||||||
Patch0012: 0012-RH-add-scsi-device-handlers-to-modules-load.d.patch
|
Patch0012: 0012-RH-add-scsi-device-handlers-to-modules-load.d.patch
|
||||||
Patch0013: 0013-RH-compile-with-libreadline-support.patch
|
Patch0013: 0013-RH-compile-with-libreadline-support.patch
|
||||||
Patch0014: 0014-RH-Add-mpathcleanup.patch
|
Patch0014: 0014-RH-Add-mpathcleanup.patch
|
||||||
|
Patch0015: 0015-libmultipath-fix-ontap-prioritizer-snprintf-limits.patch
|
||||||
|
|
||||||
# runtime
|
# runtime
|
||||||
Requires: %{name}-libs = %{version}-%{release}
|
Requires: %{name}-libs = %{version}-%{release}
|
||||||
@ -233,6 +234,10 @@ fi
|
|||||||
%{_pkgconfdir}/libdmmp.pc
|
%{_pkgconfdir}/libdmmp.pc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Sep 13 2024 Benjamin Marzinski <bmarzins@redhat.com> - 0.9.9-3
|
||||||
|
- Add 0015-libmultipath-fix-ontap-prioritizer-snprintf-limits.patch
|
||||||
|
- Resolves: RHEL-49747
|
||||||
|
|
||||||
* Thu Sep 12 2024 Benjamin Marzinski <bmarzins@redhat.com> - 0.9.9-2
|
* Thu Sep 12 2024 Benjamin Marzinski <bmarzins@redhat.com> - 0.9.9-2
|
||||||
- Improve multiple OSCI tests
|
- Improve multiple OSCI tests
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user