Skip to content

Commit 75d2971

Browse files
Dan Carpenterdjbw
authored andcommitted
libnvdimm, namespace: potential NULL deref on allocation error
If the kcalloc() fails then "devs" can be NULL and we dereference it checking "devs[i]". Fixes: 1b40e09 ('libnvdimm: blk labels and namespace instantiation') Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
1 parent 1001354 commit 75d2971

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

drivers/nvdimm/namespace_devs.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2176,12 +2176,14 @@ static struct device **scan_labels(struct nd_region *nd_region)
21762176
return devs;
21772177

21782178
err:
2179-
for (i = 0; devs[i]; i++)
2180-
if (is_nd_blk(&nd_region->dev))
2181-
namespace_blk_release(devs[i]);
2182-
else
2183-
namespace_pmem_release(devs[i]);
2184-
kfree(devs);
2179+
if (devs) {
2180+
for (i = 0; devs[i]; i++)
2181+
if (is_nd_blk(&nd_region->dev))
2182+
namespace_blk_release(devs[i]);
2183+
else
2184+
namespace_pmem_release(devs[i]);
2185+
kfree(devs);
2186+
}
21852187
return NULL;
21862188
}
21872189

0 commit comments

Comments
 (0)