* [PATCH 0/6] SCSI: esas2r: Static check fixes
@ 2013-08-29 19:55 Bradley Grove
2013-08-29 19:55 ` [PATCH 1/6] SCSI: esas2r: smatch - Use biwise rather than logical AND for checking if any bit set Bradley Grove
` (5 more replies)
0 siblings, 6 replies; 8+ messages in thread
From: Bradley Grove @ 2013-08-29 19:55 UTC (permalink / raw)
To: linux-scsi, jbottomley; +Cc: jseba, dan.carpenter, fengguang.wu, Bradley Grove
This series of patches fix errors detected by smatch and coccinelle.
Bradley Grove (6):
SCSI: esas2r: smatch - Use biwise rather than logical AND for checking
if any bit set
SCSI: esas2r: smatch - Fix dereference that occurs prior to check
SCSI: esas2r: smatch - Fix dereference that occurs prior to check
SCSI: esas2r: smatch - Fix overrun due to sprintf appending NULL
SCSI: esas2r: smatch - Remove test for impossible condition (uint8 >
255)
SCSI: esas2r: coccinelle - Replace memcpy with struct assignment
drivers/scsi/esas2r/esas2r_flash.c | 11 ++++++++---
drivers/scsi/esas2r/esas2r_init.c | 5 +++--
drivers/scsi/esas2r/esas2r_ioctl.c | 2 +-
drivers/scsi/esas2r/esas2r_vda.c | 7 +++++--
4 files changed, 17 insertions(+), 8 deletions(-)
--
1.8.1.4
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/6] SCSI: esas2r: smatch - Use biwise rather than logical AND for checking if any bit set
2013-08-29 19:55 [PATCH 0/6] SCSI: esas2r: Static check fixes Bradley Grove
@ 2013-08-29 19:55 ` Bradley Grove
2013-09-06 18:15 ` James Bottomley
2013-08-29 19:55 ` [PATCH 2/6] SCSI: esas2r: smatch - Fix dereference that occurs prior to check Bradley Grove
` (4 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Bradley Grove @ 2013-08-29 19:55 UTC (permalink / raw)
To: linux-scsi, jbottomley; +Cc: jseba, dan.carpenter, fengguang.wu, Bradley Grove
Signed-off-by: Bradley Grove <bgrove@attotech.com>
---
drivers/scsi/esas2r/esas2r_init.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/esas2r/esas2r_init.c b/drivers/scsi/esas2r/esas2r_init.c
index 3a798e7..78b18c1 100644
--- a/drivers/scsi/esas2r/esas2r_init.c
+++ b/drivers/scsi/esas2r/esas2r_init.c
@@ -808,7 +808,7 @@ static void esas2r_init_pci_cfg_space(struct esas2r_adapter *a)
int pcie_cap_reg;
pcie_cap_reg = pci_find_capability(a->pcid, PCI_CAP_ID_EXP);
- if (0xffff && pcie_cap_reg) {
+ if (0xffff & pcie_cap_reg) {
u16 devcontrol;
pci_read_config_word(a->pcid, pcie_cap_reg + PCI_EXP_DEVCTL,
--
1.8.1.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/6] SCSI: esas2r: smatch - Fix dereference that occurs prior to check
2013-08-29 19:55 [PATCH 0/6] SCSI: esas2r: Static check fixes Bradley Grove
2013-08-29 19:55 ` [PATCH 1/6] SCSI: esas2r: smatch - Use biwise rather than logical AND for checking if any bit set Bradley Grove
@ 2013-08-29 19:55 ` Bradley Grove
2013-08-29 19:55 ` [PATCH 3/6] " Bradley Grove
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Bradley Grove @ 2013-08-29 19:55 UTC (permalink / raw)
To: linux-scsi, jbottomley; +Cc: jseba, dan.carpenter, fengguang.wu, Bradley Grove
Signed-off-by: Bradley Grove <bgrove@attotech.com>
---
drivers/scsi/esas2r/esas2r_init.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/esas2r/esas2r_init.c b/drivers/scsi/esas2r/esas2r_init.c
index 78b18c1..9aaad0d 100644
--- a/drivers/scsi/esas2r/esas2r_init.c
+++ b/drivers/scsi/esas2r/esas2r_init.c
@@ -665,7 +665,7 @@ void esas2r_kill_adapter(int i)
int esas2r_cleanup(struct Scsi_Host *host)
{
- struct esas2r_adapter *a = (struct esas2r_adapter *)host->hostdata;
+ struct esas2r_adapter *a;
int index;
if (host == NULL) {
@@ -678,6 +678,7 @@ int esas2r_cleanup(struct Scsi_Host *host)
}
esas2r_debug("esas2r_cleanup called for host %p", host);
+ a = (struct esas2r_adapter *)host->hostdata;
index = a->index;
esas2r_kill_adapter(index);
return index;
--
1.8.1.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/6] SCSI: esas2r: smatch - Fix dereference that occurs prior to check
2013-08-29 19:55 [PATCH 0/6] SCSI: esas2r: Static check fixes Bradley Grove
2013-08-29 19:55 ` [PATCH 1/6] SCSI: esas2r: smatch - Use biwise rather than logical AND for checking if any bit set Bradley Grove
2013-08-29 19:55 ` [PATCH 2/6] SCSI: esas2r: smatch - Fix dereference that occurs prior to check Bradley Grove
@ 2013-08-29 19:55 ` Bradley Grove
2013-08-29 19:55 ` [PATCH 4/6] SCSI: esas2r: smatch - Fix overrun due to sprintf appending NULL Bradley Grove
` (2 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Bradley Grove @ 2013-08-29 19:55 UTC (permalink / raw)
To: linux-scsi, jbottomley; +Cc: jseba, dan.carpenter, fengguang.wu, Bradley Grove
Signed-off-by: Bradley Grove <bgrove@attotech.com>
---
drivers/scsi/esas2r/esas2r_flash.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/scsi/esas2r/esas2r_flash.c b/drivers/scsi/esas2r/esas2r_flash.c
index 8582929..45e353f 100644
--- a/drivers/scsi/esas2r/esas2r_flash.c
+++ b/drivers/scsi/esas2r/esas2r_flash.c
@@ -860,8 +860,13 @@ bool esas2r_process_fs_ioctl(struct esas2r_adapter *a,
return false;
}
+ if (fsc->command >= cmdcnt) {
+ fs->status = ATTO_STS_INV_FUNC;
+ return false;
+ }
+
func = cmd_to_fls_func[fsc->command];
- if (fsc->command >= cmdcnt || func == 0xFF) {
+ if (func == 0xFF) {
fs->status = ATTO_STS_INV_FUNC;
return false;
}
--
1.8.1.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/6] SCSI: esas2r: smatch - Fix overrun due to sprintf appending NULL
2013-08-29 19:55 [PATCH 0/6] SCSI: esas2r: Static check fixes Bradley Grove
` (2 preceding siblings ...)
2013-08-29 19:55 ` [PATCH 3/6] " Bradley Grove
@ 2013-08-29 19:55 ` Bradley Grove
2013-08-29 19:55 ` [PATCH 5/6] SCSI: esas2r: smatch - Remove test for impossible condition (uint8 > 255) Bradley Grove
2013-08-29 19:55 ` [PATCH 6/6] SCSI: esas2r: coccinelle - Replace memcpy with struct assignment Bradley Grove
5 siblings, 0 replies; 8+ messages in thread
From: Bradley Grove @ 2013-08-29 19:55 UTC (permalink / raw)
To: linux-scsi, jbottomley; +Cc: jseba, dan.carpenter, fengguang.wu, Bradley Grove
Signed-off-by: Bradley Grove <bgrove@attotech.com>
---
drivers/scsi/esas2r/esas2r_vda.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/esas2r/esas2r_vda.c b/drivers/scsi/esas2r/esas2r_vda.c
index f8ec6d6..fd13928 100644
--- a/drivers/scsi/esas2r/esas2r_vda.c
+++ b/drivers/scsi/esas2r/esas2r_vda.c
@@ -302,6 +302,7 @@ static void esas2r_complete_vda_ioctl(struct esas2r_adapter *a,
if (vi->cmd.cfg.cfg_func == VDA_CFG_GET_INIT) {
struct atto_ioctl_vda_cfg_cmd *cfg = &vi->cmd.cfg;
struct atto_vda_cfg_rsp *rsp = &rq->func_rsp.cfg_rsp;
+ char buf[sizeof(cfg->data.init.fw_release) + 1];
cfg->data_length =
cpu_to_le32(sizeof(struct atto_vda_cfg_init));
@@ -309,11 +310,13 @@ static void esas2r_complete_vda_ioctl(struct esas2r_adapter *a,
le32_to_cpu(rsp->vda_version);
cfg->data.init.fw_build = rsp->fw_build;
- sprintf((char *)&cfg->data.init.fw_release,
- "%1d.%02d",
+ snprintf(buf, sizeof(buf), "%1d.%02d",
(int)LOBYTE(le16_to_cpu(rsp->fw_release)),
(int)HIBYTE(le16_to_cpu(rsp->fw_release)));
+ memcpy(&cfg->data.init.fw_release, buf,
+ sizeof(cfg->data.init.fw_release));
+
if (LOWORD(LOBYTE(cfg->data.init.fw_build)) == 'A')
cfg->data.init.fw_version =
cfg->data.init.fw_build;
--
1.8.1.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/6] SCSI: esas2r: smatch - Remove test for impossible condition (uint8 > 255)
2013-08-29 19:55 [PATCH 0/6] SCSI: esas2r: Static check fixes Bradley Grove
` (3 preceding siblings ...)
2013-08-29 19:55 ` [PATCH 4/6] SCSI: esas2r: smatch - Fix overrun due to sprintf appending NULL Bradley Grove
@ 2013-08-29 19:55 ` Bradley Grove
2013-08-29 19:55 ` [PATCH 6/6] SCSI: esas2r: coccinelle - Replace memcpy with struct assignment Bradley Grove
5 siblings, 0 replies; 8+ messages in thread
From: Bradley Grove @ 2013-08-29 19:55 UTC (permalink / raw)
To: linux-scsi, jbottomley; +Cc: jseba, dan.carpenter, fengguang.wu, Bradley Grove
Signed-off-by: Bradley Grove <bgrove@attotech.com>
---
drivers/scsi/esas2r/esas2r_ioctl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/esas2r/esas2r_ioctl.c b/drivers/scsi/esas2r/esas2r_ioctl.c
index f3d0cb8..e5b0902 100644
--- a/drivers/scsi/esas2r/esas2r_ioctl.c
+++ b/drivers/scsi/esas2r/esas2r_ioctl.c
@@ -415,7 +415,7 @@ static int csmi_ioctl_callback(struct esas2r_adapter *a,
lun = tm->lun;
}
- if (path > 0 || tid > ESAS2R_MAX_ID) {
+ if (path > 0) {
rq->func_rsp.ioctl_rsp.csmi.csmi_status = cpu_to_le32(
CSMI_STS_INV_PARAM);
return false;
--
1.8.1.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 6/6] SCSI: esas2r: coccinelle - Replace memcpy with struct assignment
2013-08-29 19:55 [PATCH 0/6] SCSI: esas2r: Static check fixes Bradley Grove
` (4 preceding siblings ...)
2013-08-29 19:55 ` [PATCH 5/6] SCSI: esas2r: smatch - Remove test for impossible condition (uint8 > 255) Bradley Grove
@ 2013-08-29 19:55 ` Bradley Grove
5 siblings, 0 replies; 8+ messages in thread
From: Bradley Grove @ 2013-08-29 19:55 UTC (permalink / raw)
To: linux-scsi, jbottomley; +Cc: jseba, dan.carpenter, fengguang.wu, Bradley Grove
Signed-off-by: Bradley Grove <bgrove@attotech.com>
---
drivers/scsi/esas2r/esas2r_flash.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/esas2r/esas2r_flash.c b/drivers/scsi/esas2r/esas2r_flash.c
index 45e353f..2ec3c23 100644
--- a/drivers/scsi/esas2r/esas2r_flash.c
+++ b/drivers/scsi/esas2r/esas2r_flash.c
@@ -1360,7 +1360,7 @@ void esas2r_nvram_set_defaults(struct esas2r_adapter *a)
u32 time = jiffies_to_msecs(jiffies);
esas2r_lock_clear_flags(&a->flags, AF_NVR_VALID);
- memcpy(n, &default_sas_nvram, sizeof(struct esas2r_sas_nvram));
+ *n = default_sas_nvram;
n->sas_addr[3] |= 0x0F;
n->sas_addr[4] = HIBYTE(LOWORD(time));
n->sas_addr[5] = LOBYTE(LOWORD(time));
@@ -1378,7 +1378,7 @@ void esas2r_nvram_get_defaults(struct esas2r_adapter *a,
* address out first.
*/
memcpy(&sas_addr[0], a->nvram->sas_addr, 8);
- memcpy(nvram, &default_sas_nvram, sizeof(struct esas2r_sas_nvram));
+ *nvram = default_sas_nvram;
memcpy(&nvram->sas_addr[0], &sas_addr[0], 8);
}
--
1.8.1.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/6] SCSI: esas2r: smatch - Use biwise rather than logical AND for checking if any bit set
2013-08-29 19:55 ` [PATCH 1/6] SCSI: esas2r: smatch - Use biwise rather than logical AND for checking if any bit set Bradley Grove
@ 2013-09-06 18:15 ` James Bottomley
0 siblings, 0 replies; 8+ messages in thread
From: James Bottomley @ 2013-09-06 18:15 UTC (permalink / raw)
To: Bradley Grove
Cc: linux-scsi@vger.kernel.org, jseba@attotech.com,
dan.carpenter@oracle.com, fengguang.wu@intel.com
On Thu, 2013-08-29 at 15:55 -0400, Bradley Grove wrote:
> Signed-off-by: Bradley Grove <bgrove@attotech.com>
This additional SCSI: in the subject is unnecessary and just causes me
extra work to remove it.
There should be a Reported-by: before the signoff indicating whoever you
got the report from (it's about the only recognition we give to the
static checker people, so it's polite to include it).
I fixed up this current series.
James
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2013-09-06 18:15 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-29 19:55 [PATCH 0/6] SCSI: esas2r: Static check fixes Bradley Grove
2013-08-29 19:55 ` [PATCH 1/6] SCSI: esas2r: smatch - Use biwise rather than logical AND for checking if any bit set Bradley Grove
2013-09-06 18:15 ` James Bottomley
2013-08-29 19:55 ` [PATCH 2/6] SCSI: esas2r: smatch - Fix dereference that occurs prior to check Bradley Grove
2013-08-29 19:55 ` [PATCH 3/6] " Bradley Grove
2013-08-29 19:55 ` [PATCH 4/6] SCSI: esas2r: smatch - Fix overrun due to sprintf appending NULL Bradley Grove
2013-08-29 19:55 ` [PATCH 5/6] SCSI: esas2r: smatch - Remove test for impossible condition (uint8 > 255) Bradley Grove
2013-08-29 19:55 ` [PATCH 6/6] SCSI: esas2r: coccinelle - Replace memcpy with struct assignment Bradley Grove
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).