diff --git a/0006-sg_ses-fix-crash-when-m-LEN-252.patch b/0006-sg_ses-fix-crash-when-m-LEN-252.patch new file mode 100644 index 0000000000000000000000000000000000000000..a106d89adc2bc786a08020a28a69ff6a581cf17d --- /dev/null +++ b/0006-sg_ses-fix-crash-when-m-LEN-252.patch @@ -0,0 +1,76 @@ +From bfbefdf2d9aa12107d08d796d6fc78862ab85402 Mon Sep 17 00:00:00 2001 +From: Douglas Gilbert +Date: Sun, 1 Aug 2021 03:14:05 +0000 +Subject: [PATCH] sg_ses: fix crash when 'm LEN' < 252 + +git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@907 6180dd3e-e324-4e3e-922d-17de1ae2f315 +--- + ChangeLog | 3 +- + src/sg_ses.c | 14 +++++++------ + 2 files changed, 10 insertions(+), 7 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index 742619c..9477769 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -2,11 +2,12 @@ Each utility has its own version number, date of last change and + some description at the top of its ".c" file. All utilities in the main + directory have their own "man" pages. There is also a sg3_utils man page. + +-Changelog for pre-release sg3_utils-1.47 [20210729] [svn: r906] ++Changelog for pre-release sg3_utils-1.47 [20210731] [svn: r907] + - sg_rep_zones: add support for REPORT ZONE DOMAINS and + REPORT REALMS in this utility + - sg_raw: fix prints of NVMe NVM command names + - sg_ses: fix Windows problem "No command (cdb) given" ++ - fix crash when 'm LEN' < 252 + - sg_logs: additions to Volume statistics lpage [ssc5r05c] + - sg_vpd: fix do_hex type on some recent pages + - sg_read_buffer: fix --length= problem +diff --git a/src/sg_ses.c b/src/sg_ses.c +index b9ac2e4..701359b 100644 +--- a/src/sg_ses.c ++++ b/src/sg_ses.c +@@ -5523,7 +5523,7 @@ int + main(int argc, char * argv[]) + { + bool have_cgs = false; +- int k, d_len, res, resid, vb; ++ int k, n, d_len, res, resid, vb; + int sg_fd = -1; + int pd_type = 0; + int ret = 0; +@@ -5757,15 +5757,17 @@ main(int argc, char * argv[]) + } + } + clear_scsi_pt_obj(ptvp); +- memset(enc_stat_rsp, 0, 4096); ++ memset(enc_stat_rsp, 0, enc_stat_rsp_sz); + } + #endif + + if (ptvp) { +- ret = sg_ll_request_sense_pt(ptvp, false, enc_stat_rsp, +- REQUEST_SENSE_RESP_SZ, ! op->quiet, vb); ++ n = (enc_stat_rsp_sz < REQUEST_SENSE_RESP_SZ) ? enc_stat_rsp_sz : ++ REQUEST_SENSE_RESP_SZ; ++ ret = sg_ll_request_sense_pt(ptvp, false, enc_stat_rsp, n, ++ ! op->quiet, vb); + if (0 == ret) { +- int sense_len = REQUEST_SENSE_RESP_SZ - get_scsi_pt_resid(ptvp); ++ int sense_len = n - get_scsi_pt_resid(ptvp); + struct sg_scsi_sense_hdr ssh; + + if ((sense_len > 7) && sg_scsi_normalize_sense(enc_stat_rsp, +@@ -5794,7 +5796,7 @@ main(int argc, char * argv[]) + " problems ahead\n", ret); + } + clear_scsi_pt_obj(ptvp); +- memset(enc_stat_rsp, 0, REQUEST_SENSE_RESP_SZ); ++ memset(enc_stat_rsp, 0, enc_stat_rsp_sz); + } + + if (op->nickname_str) +-- +2.27.0 + diff --git a/sg3_utils.spec b/sg3_utils.spec index 4f28d65ab8599bd4227ad2323f79397cd640b535..a9f309d7f0366b9b4f82383ca215b0019a7439c8 100644 --- a/sg3_utils.spec +++ b/sg3_utils.spec @@ -1,6 +1,6 @@ Name: sg3_utils Version: 1.45 -Release: 7 +Release: 8 Summary: Utilities that send SCSI commands to devices. License: GPL-2.0-or-later AND BSD URL: http://sg.danny.cz/sg/sg3_utils.html @@ -10,8 +10,10 @@ Patch0: 0000-sg3_utils-1.37-rescan-scsi-findremapped-enhance.patch Patch1: 0001-sg3_utils-1.37-rescan-downpress.patch Patch2: 0002-bugfix-sg3_utils-fix-syntax-error.patch Patch3: 0003-sg3_utils-1.42-delete-lun-rescan-scsi-bus-report-error.patch -Patch4: 0004-sg3_utils-fix-memset-coredump.patch +# Do not apply patch0004 to fix sg_ses -m LEN <252 coredump +##Patch4: 0004-sg3_utils-fix-memset-coredump.patch Patch5: 0005-sg3_utils-rescan-scsi-bus-list-all-LUNs-in-one-line.patch +Patch6: 0006-sg_ses-fix-crash-when-m-LEN-252.patch Provides: %{name}-libs Obsoletes: %{name}-libs @@ -75,6 +77,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/*.la %{_mandir}/man8/* %changelog +* Fri Jul 8 2022 wangxiaomeng - 1.45-8 +- Delete patch0004, and fix crash when 'm LEN' < 252 + * Sat Jan 29 2022 Zhiqiang Liu - 1.45-7 - rescan scsi bus list all LUNs in one line