device-dax: fix 'passing zero to ERR_PTR()' warning
Dan Carpenter reports: The patch 7b6be8444e0f: "dax: refactor dax-fs into a generic provider of 'struct dax_device' instances" from Apr 11, 2017, leads to the following static checker warning: drivers/dax/device.c:643 devm_create_dev_dax() warn: passing zero to 'ERR_PTR' Fix the case where we inadvertently leak 0 to ERR_PTR() by setting at every error case, and make it clear that 'count' is never 0. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Родитель
4e3f0701f2
Коммит
43fe51e11c
|
@ -567,7 +567,10 @@ struct dev_dax *devm_create_dev_dax(struct dax_region *dax_region,
|
||||||
struct inode *inode;
|
struct inode *inode;
|
||||||
struct device *dev;
|
struct device *dev;
|
||||||
struct cdev *cdev;
|
struct cdev *cdev;
|
||||||
int rc = 0, i;
|
int rc, i;
|
||||||
|
|
||||||
|
if (!count)
|
||||||
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
||||||
dev_dax = kzalloc(sizeof(*dev_dax) + sizeof(*res) * count, GFP_KERNEL);
|
dev_dax = kzalloc(sizeof(*dev_dax) + sizeof(*res) * count, GFP_KERNEL);
|
||||||
if (!dev_dax)
|
if (!dev_dax)
|
||||||
|
@ -598,8 +601,10 @@ struct dev_dax *devm_create_dev_dax(struct dax_region *dax_region,
|
||||||
* device outside of mmap of the resulting character device.
|
* device outside of mmap of the resulting character device.
|
||||||
*/
|
*/
|
||||||
dax_dev = alloc_dax(dev_dax, NULL, NULL);
|
dax_dev = alloc_dax(dev_dax, NULL, NULL);
|
||||||
if (!dax_dev)
|
if (!dax_dev) {
|
||||||
|
rc = -ENOMEM;
|
||||||
goto err_dax;
|
goto err_dax;
|
||||||
|
}
|
||||||
|
|
||||||
/* from here on we're committed to teardown via dax_dev_release() */
|
/* from here on we're committed to teardown via dax_dev_release() */
|
||||||
dev = &dev_dax->dev;
|
dev = &dev_dax->dev;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче