[PATCH 2/8] staging: wfx: check memory allocation
Jerome Pouiller
Jerome.Pouiller at silabs.com
Fri Oct 9 17:13:01 UTC 2020
From: Jérôme Pouiller <jerome.pouiller at silabs.com>
Smatch complains:
main.c:228 wfx_send_pdata_pds() warn: potential NULL parameter dereference 'tmp_buf'
227 tmp_buf = kmemdup(pds->data, pds->size, GFP_KERNEL);
228 ret = wfx_send_pds(wdev, tmp_buf, pds->size);
^^^^^^^
229 kfree(tmp_buf);
Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
Signed-off-by: Jérôme Pouiller <jerome.pouiller at silabs.com>
---
drivers/staging/wfx/main.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c
index df11c091e094..a8dc2c033410 100644
--- a/drivers/staging/wfx/main.c
+++ b/drivers/staging/wfx/main.c
@@ -222,12 +222,18 @@ static int wfx_send_pdata_pds(struct wfx_dev *wdev)
if (ret) {
dev_err(wdev->dev, "can't load PDS file %s\n",
wdev->pdata.file_pds);
- return ret;
+ goto err1;
}
tmp_buf = kmemdup(pds->data, pds->size, GFP_KERNEL);
+ if (!tmp_buf) {
+ ret = -ENOMEM;
+ goto err2;
+ }
ret = wfx_send_pds(wdev, tmp_buf, pds->size);
kfree(tmp_buf);
+err2:
release_firmware(pds);
+err1:
return ret;
}
--
2.28.0
More information about the devel
mailing list