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