diff --git a/RHEL-188083-sg_inq-export-output-conformance-for-SCSI-name-string-and-ATA-fields.patch b/RHEL-188083-sg_inq-export-output-conformance-for-SCSI-name-string-and-ATA-fields.patch new file mode 100644 index 0000000..825d208 --- /dev/null +++ b/RHEL-188083-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 bd63672..67a023f 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.48 -Release: 9%{?dist} +Release: 10%{?dist} License: GPL-2.0-or-later AND BSD-2-Clause URL: https://sg.danny.cz/sg/sg3_utils.html Source0: https://sg.danny.cz/sg/p/sg3_utils-%{version}.tar.xz @@ -26,6 +26,8 @@ Patch5: RHEL-119246-1-sg_inq-fix-missing-output-fields-in--export-format.patch # https://redhat.atlassian.net/browse/RHEL-119246 # https://redhat.aslassian.net/browse/RHEL-123748 Patch6: RHEL-119246-2-sg_inq-re-add-Unit-serial-number-field.patch +# https://redhat.aslassian.net/browse/RHEL-188083 +Patch7: RHEL-188083-sg_inq-export-output-conformance-for-SCSI-name-string-and-ATA-fields.patch Requires: %{name}-libs%{?_isa} = %{version}-%{release} BuildRequires: make @@ -142,6 +144,9 @@ install -p -m 755 scripts/fc_wwpn_id %{buildroot}%{_udevlibdir} %changelog +* Thu Jun 25 2026 Paul Evans - 1.48-10 +- sg_inq output conformance for SCSI name string and ATA fields (RHEL-188083) + * Mon May 11 2026 Paul Evans - 1.48-9 - rescan-scsi-bus.sh: Replace 'which' with build in 'command -v' [Patch v2] (RHEL-70693)