From 601f93834a8e4f987a6e543ac6da419496dfbdd5 Mon Sep 17 00:00:00 2001 From: Paul Evans Date: Thu, 25 Jun 2026 13:59:32 +0100 Subject: [PATCH] * Thu Jun 25 2026 Paul Evans - 1.47-12 - sg_inq output conformance for SCSI name string and ATA fields (RHEL-188125) Resolves: RHEL-188125 --- ...-for-SCSI-name-string-and-ATA-fields.patch | 63 +++++++++++++++++++ sg3_utils.spec | 8 ++- 2 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 RHEL-188125-sg_inq-export-output-conformance-for-SCSI-name-string-and-ATA-fields.patch diff --git a/RHEL-188125-sg_inq-export-output-conformance-for-SCSI-name-string-and-ATA-fields.patch b/RHEL-188125-sg_inq-export-output-conformance-for-SCSI-name-string-and-ATA-fields.patch new file mode 100644 index 0000000..825d208 --- /dev/null +++ b/RHEL-188125-sg_inq-export-output-conformance-for-SCSI-name-string-and-ATA-fields.patch @@ -0,0 +1,63 @@ +From 91981b9f091cf81b43fe5e8bbdb82fd0f90ebb8d Mon Sep 17 00:00:00 2001 +From: Paul Evans +Date: Tue, 2 Jun 2026 15:03:41 +0100 +Subject: [PATCH] sg_inq: --export output conformance for SCSI name string and + ATA fields + +Apply udev-conforming character encoding to VPD 0x83 designator type 8 +(SCSI name string) and the T10 vendor ID ATA subfield, matching the +encoding already used by designator types 0 and 1 since commit +4d770f10. + +Signed-off-by: Paul Evans +--- + src/sg_inq.c | 26 ++++++++++++++++++++++---- + 1 file changed, 22 insertions(+), 4 deletions(-) + +diff --git a/src/sg_inq.c b/src/sg_inq.c +index b3b8127f..a3b78965 100644 +--- a/src/sg_inq.c ++++ b/src/sg_inq.c +@@ -1919,8 +1919,17 @@ export_dev_ids(uint8_t * buff, int len, int verbose) + } + printf("\n"); + if (!memcmp(ip, "ATA_", 4)) { +- printf("SCSI_IDENT_%s_ATA=%.*s\n", assoc_str, +- k - 4, ip + 4); ++ printf("SCSI_IDENT_%s_ATA=", assoc_str); ++ for (m = 4; m < k; ++m) { ++ if ((ip[m] >= '0' && ip[m] <= '9') || ++ (ip[m] >= 'A' && ip[m] <= 'Z') || ++ (ip[m] >= 'a' && ip[m] <= 'z') || ++ strchr("#+-.:=@_", ip[m]) != NULL) ++ printf("%c", ip[m]); ++ else ++ printf("\\x%02x", ip[m]); ++ } ++ printf("\n"); + } + } else { + for (m = 0; m < i_len; ++m) +@@ -2043,8 +2052,17 @@ export_dev_ids(uint8_t * buff, int len, int verbose) + break; + } + +- printf("SCSI_IDENT_%s_NAME=%.*s\n", assoc_str, i_len, +- (const char *)ip); ++ printf("SCSI_IDENT_%s_NAME=", assoc_str); ++ for (m = 0; m < i_len; ++m) { ++ if ((ip[m] >= '0' && ip[m] <= '9') || ++ (ip[m] >= 'A' && ip[m] <= 'Z') || ++ (ip[m] >= 'a' && ip[m] <= 'z') || ++ strchr("#+-.:=@_", ip[m]) != NULL) ++ printf("%c", ip[m]); ++ else ++ printf("\\x%02x", ip[m]); ++ } ++ printf("\n"); + break; + case 9: /* Protocol specific port identifier */ + if (TPROTO_UAS == p_id) { +-- +2.54.0 + diff --git a/sg3_utils.spec b/sg3_utils.spec index e50910a..f6d3518 100644 --- a/sg3_utils.spec +++ b/sg3_utils.spec @@ -4,7 +4,7 @@ Summary: Utilities for devices that use SCSI command sets Name: sg3_utils Version: 1.47 -Release: 11%{?dist} +Release: 12%{?dist} License: GPLv2+ and BSD URL: https://sg.danny.cz/sg/sg3_utils.html Source0: https://sg.danny.cz/sg/p/sg3_utils-%{version}.tar.xz @@ -35,7 +35,8 @@ Patch6: sg3_utils-1.48-sg_vpd_vendor-Fix-missing-newline-in-the-svpd_decode.pat Patch7: 63-scsi-sg3_symlink.rules-DM_MULTIPATH_DEVICE_PATH-skip.patch # https://redhat.atlassian.net/browse/RHEL-122982 Patch8: RHEL-111346-rescan-scsi-bus.sh-Correctly-read-RMB-bit-on-enquiry.patch - +# https://redhat.atlassian.net/browser/RHEL-188125 +Patch9: RHEL-188125-sg_inq-export-output-conformance-for-SCSI-name-string-and-ATA-fields.patch Requires: %{name}-libs%{?_isa} = %{version}-%{release} BuildRequires: make @@ -132,6 +133,9 @@ install -p -m 755 scripts/fc_wwpn_id $RPM_BUILD_ROOT%{_udevlibdir} %changelog +* Thu Jun 25 2026 Paul Evans - 1.47-12 +- sg_inq output conformance for SCSI name string and ATA fields (RHEL-188125) + * Wed Mar 25 2026 Paul Evans - 1.47-11 - rescan-scsi-bus.sh Correctly read RMB bit on enquiry (RHEL-122982)