| From 045ef9a4bc4d30f282c3de88848c5abcc809ae4c Mon Sep 17 00:00:00 2001 |
| From: Kangjie Lu <kjlu@umn.edu> |
| Date: Sat, 13 Apr 2019 11:34:47 +0100 |
| Subject: slimbus: fix a potential NULL pointer dereference in |
| of_qcom_slim_ngd_register |
| |
| [ Upstream commit 06d5d6b7f9948a89543e1160ef852d57892c750d ] |
| |
| In case platform_device_alloc fails, the fix returns an error |
| code to avoid the NULL pointer dereference. |
| |
| Signed-off-by: Kangjie Lu <kjlu@umn.edu> |
| Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/slimbus/qcom-ngd-ctrl.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c |
| index 71f094c9ec684..f3585777324cf 100644 |
| --- a/drivers/slimbus/qcom-ngd-ctrl.c |
| +++ b/drivers/slimbus/qcom-ngd-ctrl.c |
| @@ -1342,6 +1342,10 @@ static int of_qcom_slim_ngd_register(struct device *parent, |
| return -ENOMEM; |
| |
| ngd->pdev = platform_device_alloc(QCOM_SLIM_NGD_DRV_NAME, id); |
| + if (!ngd->pdev) { |
| + kfree(ngd); |
| + return -ENOMEM; |
| + } |
| ngd->id = id; |
| ngd->pdev->dev.parent = parent; |
| ngd->pdev->driver_override = QCOM_SLIM_NGD_DRV_NAME; |
| -- |
| 2.20.1 |
| |