msm: ais: Fix for OOB security CR

If the user passes the arbitrary command with _IOC_DIR(cmd) == _IOC_NONE,
"arg" should point to any arbitrary address.
Check for invalid command and return error.

CRs-Fixed: 2299567
Change-Id: Ibd77adfe53ef0777ff4eb96c914e21f43dfd6749
Signed-off-by: E V Ravi <evenka@codeaurora.org>
This commit is contained in:
E V Ravi 2018-12-18 14:41:59 +05:30 committed by Gerrit - the friendly Code Review server
parent c3852a5d61
commit f4cc27b8cd

View file

@ -1,4 +1,4 @@
/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -312,10 +312,6 @@ static long msm_ir_led_subdev_do_ioctl(
(struct msm_ir_led_cfg_data_t32 *)arg;
struct msm_ir_led_cfg_data_t ir_led_data;
ir_led_data.cfg_type = u32->cfg_type;
ir_led_data.pwm_duty_on_ns = u32->pwm_duty_on_ns;
ir_led_data.pwm_period_ns = u32->pwm_period_ns;
switch (cmd) {
case VIDIOC_MSM_IR_LED_CFG32:
cmd = VIDIOC_MSM_IR_LED_CFG;
@ -324,6 +320,10 @@ static long msm_ir_led_subdev_do_ioctl(
return msm_ir_led_subdev_ioctl(sd, cmd, arg);
}
ir_led_data.cfg_type = u32->cfg_type;
ir_led_data.pwm_duty_on_ns = u32->pwm_duty_on_ns;
ir_led_data.pwm_period_ns = u32->pwm_period_ns;
rc = msm_ir_led_subdev_ioctl(sd, cmd, &ir_led_data);
return rc;