summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-06-22 07:40:18 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-06-22 07:40:18 -0700
commit77a019931a58b6f287c27dd46c2f74d31172e20d (patch)
tree945d52553bbfa61eb760b9a6c892cbe50d1d3333
parent46e4ca524def0d8152b3494e5d2e58e992c07af3 (diff)
parentc454825fb1ecbb2732eaaccd3e753d522889ffc3 (diff)
Merge "msm: camera: fix untrusted pointer for power down setting"
-rw-r--r--drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
index 891e528f75f1..a41d7dba490e 100644
--- a/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
+++ b/drivers/media/platform/msm/camera_v2/sensor/msm_sensor_driver.c
@@ -469,17 +469,11 @@ static int32_t msm_sensor_create_pd_settings(void *setting,
#ifdef CONFIG_COMPAT
if (is_compat_task()) {
- int i = 0;
- struct msm_sensor_power_setting32 *power_setting_iter =
- (struct msm_sensor_power_setting32 *)compat_ptr((
- (struct msm_camera_sensor_slave_info32 *)setting)->
- power_setting_array.power_setting);
-
- for (i = 0; i < size_down; i++) {
- pd[i].config_val = power_setting_iter[i].config_val;
- pd[i].delay = power_setting_iter[i].delay;
- pd[i].seq_type = power_setting_iter[i].seq_type;
- pd[i].seq_val = power_setting_iter[i].seq_val;
+ rc = msm_sensor_get_pw_settings_compat(
+ pd, pu, size_down);
+ if (rc < 0) {
+ pr_err("failed");
+ return -EFAULT;
}
} else
#endif