fix issue: https://gitee.com/src-openeuler/sg3_utils/issues/I5G05L memset enc_stat_rsp by its true length Signed-off-by: wangxiaomeng <wangxiaomeng@kylinos.cn>
64 lines
2.1 KiB
Diff
64 lines
2.1 KiB
Diff
From bfbefdf2d9aa12107d08d796d6fc78862ab85402 Mon Sep 17 00:00:00 2001
|
|
From: Douglas Gilbert <dgilbert@interlog.com>
|
|
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 <wangxiaomeng@kylinos.cn>
|
|
---
|
|
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
|
|
@@ -5530,7 +5530,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;
|
|
@@ -5764,15 +5764,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,
|
|
@@ -5801,7 +5803,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
|
|
|