Re: libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 2015-06-30 at 20:42 +0300, Dan Carpenter wrote:
> Hello Ross Zwisler,
> 
> This is a semi-automatic email about new static checker warnings.
> 
> The patch 047fc8a1f9a6: "libnvdimm, nfit, nd_blk: driver for BLK-mode 
> access persistent memory" from Jun 25, 2015, leads to the following 
> Smatch complaint:
> 
> drivers/acpi/nfit.c:1224 acpi_nfit_blk_region_enable()
> 	 error: we previously assumed 'nfit_mem' could be null (see line 1223)
> 
> drivers/acpi/nfit.c
>   1222		nfit_mem = nvdimm_provider_data(nvdimm);
>   1223		if (!nfit_mem || !nfit_mem->dcr || !nfit_mem->bdw) {
>                      ^^^^^^^^
> Check.
> 
>   1224			dev_dbg(dev, "%s: missing%s%s%s\n", __func__,
>   1225					nfit_mem ? "" : " nfit_mem",
>   1226					nfit_mem->dcr ? "" : " dcr",
>                                         ^^^^^^^^^^^^^
> Unchecked dereference.

Thanks Dan!

8<-----
nfit: fix smatch "use after null check" report

From: Dan Williams <dan.j.williams@xxxxxxxxx>

drivers/acpi/nfit.c:1224 acpi_nfit_blk_region_enable()
         error: we previously assumed 'nfit_mem' could be null (see line 1223)

drivers/acpi/nfit.c
  1222          nfit_mem = nvdimm_provider_data(nvdimm);
  1223          if (!nfit_mem || !nfit_mem->dcr || !nfit_mem->bdw) {
                     ^^^^^^^^
Check.

  1224                  dev_dbg(dev, "%s: missing%s%s%s\n", __func__,
  1225                                  nfit_mem ? "" : " nfit_mem",
  1226                                  nfit_mem->dcr ? "" : " dcr",
                                        ^^^^^^^^^^^^^
Unchecked dereference.

Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Acked-by: Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx>
Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
---
 drivers/acpi/nfit.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c
index 2161fa178c8d..a20b7c883ca0 100644
--- a/drivers/acpi/nfit.c
+++ b/drivers/acpi/nfit.c
@@ -1223,8 +1223,8 @@ static int acpi_nfit_blk_region_enable(struct nvdimm_bus *nvdimm_bus,
 	if (!nfit_mem || !nfit_mem->dcr || !nfit_mem->bdw) {
 		dev_dbg(dev, "%s: missing%s%s%s\n", __func__,
 				nfit_mem ? "" : " nfit_mem",
-				nfit_mem->dcr ? "" : " dcr",
-				nfit_mem->bdw ? "" : " bdw");
+				(nfit_mem && nfit_mem->dcr) ? "" : " dcr",
+				(nfit_mem && nfit_mem->bdw) ? "" : " bdw");
 		return -ENXIO;
 	}
 

��.n��������+%������w��{.n�����{�����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux