From cbb10fa727a3cd004e66584c8743a56c6c45c7cf Mon Sep 17 00:00:00 2001 From: wangxiaomeng Date: Mon, 11 Jul 2022 11:34:47 +0800 Subject: [PATCH] Backport patch to solve coredump problem, fix crash when 'm LEN' < 252 (cherry picked from commit 80f63c76c9f8ed453c7ba110fc29f231eccefc9c) --- 0004-sg3_utils-fix-memset-coredump.patch | 29 ---------- 0004-sg_ses-fix-crash-when-m-LEN-252.patch | 63 ++++++++++++++++++++++ sg3_utils.spec | 7 ++- 3 files changed, 68 insertions(+), 31 deletions(-) delete mode 100644 0004-sg3_utils-fix-memset-coredump.patch create mode 100644 0004-sg_ses-fix-crash-when-m-LEN-252.patch diff --git a/0004-sg3_utils-fix-memset-coredump.patch b/0004-sg3_utils-fix-memset-coredump.patch deleted file mode 100644 index ff6fdc5..0000000 --- a/0004-sg3_utils-fix-memset-coredump.patch +++ /dev/null @@ -1,29 +0,0 @@ -From dd2a61c9551ac5d2ac0c5902172fd8312edc22cb Mon Sep 17 00:00:00 2001 -From: yanglongkang -Date: Tue, 9 Feb 2021 11:39:32 +0800 -Subject: [PATCH] sg3_utils: fix memset coredump - -alloc MX_ALLOC_LEN size mem to enc_stat_rsp for -solving coredump problem. - -Signed-off-by: yanglongkang ---- - src/sg_ses.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/sg_ses.c b/src/sg_ses.c -index 23fc3b9..cf344b7 100644 ---- a/src/sg_ses.c -+++ b/src/sg_ses.c -@@ -5582,7 +5582,7 @@ main(int argc, char * argv[]) - enumerate_work(op); - goto early_out; - } -- enc_stat_rsp = sg_memalign(op->maxlen, 0, &free_enc_stat_rsp, false); -+ enc_stat_rsp = sg_memalign(MX_ALLOC_LEN, 0, &free_enc_stat_rsp, false); - if (NULL == enc_stat_rsp) { - pr2serr("Unable to get heap for enc_stat_rsp\n"); - goto err_out; --- -1.8.3.1 - diff --git a/0004-sg_ses-fix-crash-when-m-LEN-252.patch b/0004-sg_ses-fix-crash-when-m-LEN-252.patch new file mode 100644 index 0000000..f76b03b --- /dev/null +++ b/0004-sg_ses-fix-crash-when-m-LEN-252.patch @@ -0,0 +1,63 @@ +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 + +fix issue:https://gitee.com/src-openeuler/sg3_utils/issues/I5G05L + +memset enc_stat_rsp by its true length + +Signed-off-by: wangxiaomeng +--- + src/sg_ses.c | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +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 4f28d65..307408c 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,7 +10,7 @@ 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 +Patch4: 0004-sg_ses-fix-crash-when-m-LEN-252.patch Patch5: 0005-sg3_utils-rescan-scsi-bus-list-all-LUNs-in-one-line.patch Provides: %{name}-libs @@ -75,6 +75,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/*.la %{_mandir}/man8/* %changelog +* Fri Jul 8 2022 wangxiaomeng - 1.45-8 +- Backport patch to solve coredump problem, fix crash when 'm LEN' < 252 + * Sat Jan 29 2022 Zhiqiang Liu - 1.45-7 - rescan scsi bus list all LUNs in one line -- Gitee