summaryrefslogtreecommitdiff
path: root/drivers/crypto
diff options
context:
space:
mode:
authorNeeraj Soni <neersoni@codeaurora.org>2017-10-03 12:17:37 +0530
committerNeeraj Soni <neersoni@codeaurora.org>2017-10-03 12:17:37 +0530
commit71a440a0c886814cbd1cfe9a85654d42238ca2df (patch)
tree0c0bda31adbcfe12553143c511866fbe439a4122 /drivers/crypto
parent977b2f70550f6b1bb1612b5b1f376d152df1acaa (diff)
crypto: ice: Sanitize the ice device return address.
Even if ICE device is not found it is possible for list device API to return non NULL pointer which will pass all NULL checks in code. Ensure to return proper address or NULL. Change-Id: I1465614b86f1415376b2adffeec6e4da1a33ddd5 Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
Diffstat (limited to 'drivers/crypto')
-rw-r--r--drivers/crypto/msm/ice.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/crypto/msm/ice.c b/drivers/crypto/msm/ice.c
index 490f8d9ddb9f..68b6a26f00b8 100644
--- a/drivers/crypto/msm/ice.c
+++ b/drivers/crypto/msm/ice.c
@@ -869,7 +869,7 @@ static int qcom_ice_restore_key_config(struct ice_device *ice_dev)
static int qcom_ice_init_clocks(struct ice_device *ice)
{
int ret = -EINVAL;
- struct ice_clk_info *clki;
+ struct ice_clk_info *clki = NULL;
struct device *dev = ice->pdev;
struct list_head *head = &ice->clk_list_head;
@@ -913,7 +913,7 @@ out:
static int qcom_ice_enable_clocks(struct ice_device *ice, bool enable)
{
int ret = 0;
- struct ice_clk_info *clki;
+ struct ice_clk_info *clki = NULL;
struct device *dev = ice->pdev;
struct list_head *head = &ice->clk_list_head;
@@ -1590,12 +1590,14 @@ struct platform_device *qcom_ice_get_pdevice(struct device_node *node)
if (ice_dev->pdev->of_node == node) {
pr_info("%s: found ice device %pK\n", __func__,
ice_dev);
+ ice_pdev = to_platform_device(ice_dev->pdev);
break;
}
}
- ice_pdev = to_platform_device(ice_dev->pdev);
- pr_info("%s: matching platform device %pK\n", __func__, ice_pdev);
+ if (ice_pdev)
+ pr_info("%s: matching platform device %pK\n", __func__,
+ ice_pdev);
out:
return ice_pdev;
}
@@ -1615,11 +1617,11 @@ static struct ice_device *get_ice_device_from_storage_type
if (!strcmp(ice_dev->ice_instance_type, storage_type)) {
pr_debug("%s: found ice device %pK\n",
__func__, ice_dev);
- break;
+ return ice_dev;
}
}
out:
- return ice_dev;
+ return NULL;
}
static int enable_ice_setup(struct ice_device *ice_dev)