* [PATCH 0/2] scsi: qla2xxx: Fix bugs found by CodeSonar
@ 2021-10-12 19:18 Joy Gu
2021-10-12 19:18 ` [PATCH 1/2] scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els() Joy Gu
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Joy Gu @ 2021-10-12 19:18 UTC (permalink / raw)
To: linux-scsi; +Cc: njavali, GR-QLogic-Storage-Upstream, bvanassche, Joy Gu
Joy Gu (2):
scsi: qla2xxx: Fix a memory leak in an error path of
qla2x00_process_els()
scsi: qla2xxx: Initialize uninitialized variables
drivers/scsi/qla2xxx/qla_attr.c | 2 +-
drivers/scsi/qla2xxx/qla_bsg.c | 2 +-
drivers/scsi/qla2xxx/qla_init.c | 6 +++---
drivers/scsi/qla2xxx/qla_mbx.c | 6 +++---
drivers/scsi/qla2xxx/qla_nx2.c | 2 +-
drivers/scsi/qla2xxx/qla_os.c | 8 ++++----
6 files changed, 13 insertions(+), 13 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()
2021-10-12 19:18 [PATCH 0/2] scsi: qla2xxx: Fix bugs found by CodeSonar Joy Gu
@ 2021-10-12 19:18 ` Joy Gu
2021-10-12 20:29 ` Bart Van Assche
2021-10-12 19:18 ` [PATCH 2/2] scsi: qla2xxx: Initialize uninitialized variables Joy Gu
2021-10-19 3:43 ` [PATCH 0/2] scsi: qla2xxx: Fix bugs found by CodeSonar Martin K. Petersen
2 siblings, 1 reply; 5+ messages in thread
From: Joy Gu @ 2021-10-12 19:18 UTC (permalink / raw)
To: linux-scsi; +Cc: njavali, GR-QLogic-Storage-Upstream, bvanassche, Joy Gu
Commit 8c0eb596baa5 ("[SCSI] qla2xxx: Fix a memory leak in an error path of
qla2x00_process_els()"), intended to change
bsg_job->request->msgcode == FC_BSG_HST_ELS_NOLOGIN
to
bsg_job->request->msgcode != FC_BSG_RPT_ELS
but changed it to
bsg_job->request->msgcode == FC_BSG_RPT_ELS
instead.
Change the == to a != to avoid leaking the fcport structure or freeing
unallocated memory.
Fixes: 8c0eb596baa5 ("[SCSI] qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()")
Signed-off-by: Joy Gu <jgu@purestorage.com>
---
drivers/scsi/qla2xxx/qla_bsg.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/qla2xxx/qla_bsg.c b/drivers/scsi/qla2xxx/qla_bsg.c
index 4b5d28d89d69..655cf5de604b 100644
--- a/drivers/scsi/qla2xxx/qla_bsg.c
+++ b/drivers/scsi/qla2xxx/qla_bsg.c
@@ -431,7 +431,7 @@ qla2x00_process_els(struct bsg_job *bsg_job)
goto done_free_fcport;
done_free_fcport:
- if (bsg_request->msgcode == FC_BSG_RPT_ELS)
+ if (bsg_request->msgcode != FC_BSG_RPT_ELS)
qla2x00_free_fcport(fcport);
done:
return rval;
--
2.17.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] scsi: qla2xxx: Initialize uninitialized variables
2021-10-12 19:18 [PATCH 0/2] scsi: qla2xxx: Fix bugs found by CodeSonar Joy Gu
2021-10-12 19:18 ` [PATCH 1/2] scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els() Joy Gu
@ 2021-10-12 19:18 ` Joy Gu
2021-10-19 3:43 ` [PATCH 0/2] scsi: qla2xxx: Fix bugs found by CodeSonar Martin K. Petersen
2 siblings, 0 replies; 5+ messages in thread
From: Joy Gu @ 2021-10-12 19:18 UTC (permalink / raw)
To: linux-scsi; +Cc: njavali, GR-QLogic-Storage-Upstream, bvanassche, Joy Gu
Zero-initialize variables left uninitialized by qla2x00_mailbox_command(),
qla8044_reg_indirect(), qla83xx_rd_reg(), and
__qla83xx_get_idc_control(). Initialize mc in qla2x00_dump_mctp_data()
so that mcp->mb[10] |= BIT_7 doesn't have an unexpected result.
Signed-off-by: Joy Gu <jgu@purestorage.com>
---
drivers/scsi/qla2xxx/qla_attr.c | 2 +-
drivers/scsi/qla2xxx/qla_init.c | 6 +++---
drivers/scsi/qla2xxx/qla_mbx.c | 6 +++---
drivers/scsi/qla2xxx/qla_nx2.c | 2 +-
drivers/scsi/qla2xxx/qla_os.c | 8 ++++----
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
index d09776b77af2..6f504b313089 100644
--- a/drivers/scsi/qla2xxx/qla_attr.c
+++ b/drivers/scsi/qla2xxx/qla_attr.c
@@ -698,7 +698,7 @@ qla2x00_sysfs_write_reset(struct file *filp, struct kobject *kobj,
struct qla_hw_data *ha = vha->hw;
struct scsi_qla_host *base_vha = pci_get_drvdata(ha->pdev);
int type;
- uint32_t idc_control;
+ uint32_t idc_control = 0;
uint8_t *tmp_data = NULL;
if (off != 0)
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 5fc7697f0af4..8f8ba47ac2c0 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -6631,8 +6631,8 @@ void
qla83xx_reset_ownership(scsi_qla_host_t *vha)
{
struct qla_hw_data *ha = vha->hw;
- uint32_t drv_presence, drv_presence_mask;
- uint32_t dev_part_info1, dev_part_info2, class_type;
+ uint32_t drv_presence = 0, drv_presence_mask;
+ uint32_t dev_part_info1 = 0, dev_part_info2 = 0, class_type;
uint32_t class_type_mask = 0x3;
uint16_t fcoe_other_function = 0xffff, i;
@@ -6776,7 +6776,7 @@ static int
qla83xx_initiating_reset(scsi_qla_host_t *vha)
{
struct qla_hw_data *ha = vha->hw;
- uint32_t idc_control, dev_state;
+ uint32_t idc_control = 0, dev_state = 0;
__qla83xx_get_idc_control(vha, &idc_control);
if ((idc_control & QLA83XX_IDC_RESET_DISABLED)) {
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 7811c4952035..b8037763c174 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -1681,7 +1681,7 @@ qla2x00_get_adapter_id(scsi_qla_host_t *vha, uint16_t *id, uint8_t *al_pa,
uint8_t *area, uint8_t *domain, uint16_t *top, uint16_t *sw_cap)
{
int rval;
- mbx_cmd_t mc;
+ mbx_cmd_t mc = { 0, };
mbx_cmd_t *mcp = &mc;
ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1046,
@@ -2257,7 +2257,7 @@ qla2x00_get_port_name(scsi_qla_host_t *vha, uint16_t loop_id, uint8_t *name,
uint8_t opt)
{
int rval;
- mbx_cmd_t mc;
+ mbx_cmd_t mc = { 0, };
mbx_cmd_t *mcp = &mc;
ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1057,
@@ -6366,7 +6366,7 @@ qla2x00_dump_mctp_data(scsi_qla_host_t *vha, dma_addr_t req_dma, uint32_t addr,
uint32_t size)
{
int rval;
- mbx_cmd_t mc;
+ mbx_cmd_t mc = { 0, };
mbx_cmd_t *mcp = &mc;
if (!IS_MCTP_CAPABLE(vha->hw))
diff --git a/drivers/scsi/qla2xxx/qla_nx2.c b/drivers/scsi/qla2xxx/qla_nx2.c
index 5ceecc9642fc..18beeb062ee3 100644
--- a/drivers/scsi/qla2xxx/qla_nx2.c
+++ b/drivers/scsi/qla2xxx/qla_nx2.c
@@ -2466,7 +2466,7 @@ qla8044_minidump_process_l2tag(struct scsi_qla_host *vha,
uint32_t addr, r_addr, c_addr, t_r_addr;
uint32_t i, k, loop_count, t_value, r_cnt, r_value;
unsigned long p_wait, w_time, p_mask;
- uint32_t c_value_w, c_value_r;
+ uint32_t c_value_w, c_value_r = 0;
struct qla8044_minidump_entry_cache *cache_hdr;
int rval = QLA_FUNCTION_FAILED;
uint32_t *data_ptr = *d_ptr;
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index d2e40aaba734..4fe00da03a20 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -5656,7 +5656,7 @@ qla83xx_check_nic_core_fw_alive(scsi_qla_host_t *base_vha)
{
int rval = QLA_SUCCESS;
unsigned long heart_beat_wait = jiffies + (1 * HZ);
- uint32_t heart_beat_counter1, heart_beat_counter2;
+ uint32_t heart_beat_counter1 = 0, heart_beat_counter2 = 0;
do {
if (time_after(jiffies, heart_beat_wait)) {
@@ -5726,7 +5726,7 @@ qla83xx_service_idc_aen(struct work_struct *work)
struct qla_hw_data *ha =
container_of(work, struct qla_hw_data, idc_aen);
scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev);
- uint32_t dev_state, idc_control;
+ uint32_t dev_state = 0, idc_control = 0;
qla83xx_idc_lock(base_vha, 0);
qla83xx_rd_reg(base_vha, QLA83XX_IDC_DEV_STATE, &dev_state);
@@ -6507,7 +6507,7 @@ static void
qla83xx_need_reset_handler(scsi_qla_host_t *vha)
{
struct qla_hw_data *ha = vha->hw;
- uint32_t drv_ack, drv_presence;
+ uint32_t drv_ack = 0, drv_presence = 0;
unsigned long ack_timeout;
/* Wait for IDC ACK from all functions (DRV-ACK == DRV-PRESENCE) */
@@ -6546,7 +6546,7 @@ static int
qla83xx_device_bootstrap(scsi_qla_host_t *vha)
{
int rval = QLA_SUCCESS;
- uint32_t idc_control;
+ uint32_t idc_control = 0;
qla83xx_wr_reg(vha, QLA83XX_IDC_DEV_STATE, QLA8XXX_DEV_INITIALIZING);
ql_log(ql_log_info, vha, 0xb069, "HW State: INITIALIZING.\n");
--
2.17.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()
2021-10-12 19:18 ` [PATCH 1/2] scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els() Joy Gu
@ 2021-10-12 20:29 ` Bart Van Assche
0 siblings, 0 replies; 5+ messages in thread
From: Bart Van Assche @ 2021-10-12 20:29 UTC (permalink / raw)
To: Joy Gu, linux-scsi; +Cc: njavali, GR-QLogic-Storage-Upstream
On 10/12/21 12:18 PM, Joy Gu wrote:
> Change the == to a != to avoid leaking the fcport structure or freeing
> unallocated memory.
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 0/2] scsi: qla2xxx: Fix bugs found by CodeSonar
2021-10-12 19:18 [PATCH 0/2] scsi: qla2xxx: Fix bugs found by CodeSonar Joy Gu
2021-10-12 19:18 ` [PATCH 1/2] scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els() Joy Gu
2021-10-12 19:18 ` [PATCH 2/2] scsi: qla2xxx: Initialize uninitialized variables Joy Gu
@ 2021-10-19 3:43 ` Martin K. Petersen
2 siblings, 0 replies; 5+ messages in thread
From: Martin K. Petersen @ 2021-10-19 3:43 UTC (permalink / raw)
To: Joy Gu, linux-scsi
Cc: Martin K . Petersen, bvanassche, GR-QLogic-Storage-Upstream,
njavali
On Tue, 12 Oct 2021 12:18:32 -0700, Joy Gu wrote:
> Joy Gu (2):
> scsi: qla2xxx: Fix a memory leak in an error path of
> qla2x00_process_els()
> scsi: qla2xxx: Initialize uninitialized variables
>
> drivers/scsi/qla2xxx/qla_attr.c | 2 +-
> drivers/scsi/qla2xxx/qla_bsg.c | 2 +-
> drivers/scsi/qla2xxx/qla_init.c | 6 +++---
> drivers/scsi/qla2xxx/qla_mbx.c | 6 +++---
> drivers/scsi/qla2xxx/qla_nx2.c | 2 +-
> drivers/scsi/qla2xxx/qla_os.c | 8 ++++----
> 6 files changed, 13 insertions(+), 13 deletions(-)
>
> [...]
Applied to 5.15/scsi-fixes, thanks!
[1/2] scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()
https://git.kernel.org/mkp/scsi/c/7fb223d0ad80
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-10-19 3:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-12 19:18 [PATCH 0/2] scsi: qla2xxx: Fix bugs found by CodeSonar Joy Gu
2021-10-12 19:18 ` [PATCH 1/2] scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els() Joy Gu
2021-10-12 20:29 ` Bart Van Assche
2021-10-12 19:18 ` [PATCH 2/2] scsi: qla2xxx: Initialize uninitialized variables Joy Gu
2021-10-19 3:43 ` [PATCH 0/2] scsi: qla2xxx: Fix bugs found by CodeSonar Martin K. Petersen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox