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: 1b40e09a12
('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>
This commit is contained in:
parent
1001354ca3
commit
75d29713b7
1 changed files with 8 additions and 6 deletions
|
@ -2176,12 +2176,14 @@ static struct device **scan_labels(struct nd_region *nd_region)
|
|||
return devs;
|
||||
|
||||
err:
|
||||
for (i = 0; devs[i]; i++)
|
||||
if (is_nd_blk(&nd_region->dev))
|
||||
namespace_blk_release(devs[i]);
|
||||
else
|
||||
namespace_pmem_release(devs[i]);
|
||||
kfree(devs);
|
||||
if (devs) {
|
||||
for (i = 0; devs[i]; i++)
|
||||
if (is_nd_blk(&nd_region->dev))
|
||||
namespace_blk_release(devs[i]);
|
||||
else
|
||||
namespace_pmem_release(devs[i]);
|
||||
kfree(devs);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue