* Thu Jun 25 2026 Paul Evans <pevans@redhat.com> - 1.47-12

- sg_inq output conformance for SCSI name string and ATA fields (RHEL-188125)

Resolves: RHEL-188125
This commit is contained in:
Paul Evans 2026-06-25 13:59:32 +01:00
parent 697b249071
commit 601f93834a
2 changed files with 69 additions and 2 deletions

View File

@ -0,0 +1,63 @@
From 91981b9f091cf81b43fe5e8bbdb82fd0f90ebb8d Mon Sep 17 00:00:00 2001
From: Paul Evans <pevans@redhat.com>
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 <pevans@redhat.com>
---
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

View File

@ -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 <pevans@redhat.com> - 1.47-12
- sg_inq output conformance for SCSI name string and ATA fields (RHEL-188125)
* Wed Mar 25 2026 Paul Evans <pevans@redhat.com> - 1.47-11
- rescan-scsi-bus.sh Correctly read RMB bit on enquiry (RHEL-122982)