Browse Source

Merge "msm: camera: sensor: Proper handling of NULL Dereference" into camera-kernel.lnx.7.0

Camera Software Integration 1 year ago
parent
commit
f888f2c3b9

+ 7 - 2
drivers/cam_sensor_module/cam_res_mgr/cam_res_mgr.c

@@ -633,8 +633,13 @@ static void cam_res_mgr_gpio_free(struct device *dev, uint gpio)
 			pctrl_idx =
 			pctrl_idx =
 				cam_res_mgr_util_get_idx_from_shared_pctrl_gpio(
 				cam_res_mgr_util_get_idx_from_shared_pctrl_gpio(
 					gpio);
 					gpio);
-			cam_res_mgr_shared_pinctrl_select_state(
-				pctrl_idx, false);
+			if (pctrl_idx >= 0) {
+				cam_res_mgr_shared_pinctrl_select_state(
+					pctrl_idx, false);
+			}
+			else {
+				CAM_ERR(CAM_RES, "Invalid PinCtrl Idx: %d", pctrl_idx);
+			}
 		}
 		}
 
 
 		CAM_DBG(CAM_RES, "freeing gpio: %u", gpio);
 		CAM_DBG(CAM_RES, "freeing gpio: %u", gpio);

+ 3 - 2
drivers/cam_sensor_module/cam_sensor/cam_sensor_core.c

@@ -1065,8 +1065,7 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl,
 {
 {
 	int rc = 0, pkt_opcode = 0;
 	int rc = 0, pkt_opcode = 0;
 	struct cam_control *cmd = (struct cam_control *)arg;
 	struct cam_control *cmd = (struct cam_control *)arg;
-	struct cam_sensor_power_ctrl_t *power_info =
-		&s_ctrl->sensordata->power_info;
+	struct cam_sensor_power_ctrl_t *power_info = NULL;
 	struct timespec64 ts;
 	struct timespec64 ts;
 	uint64_t ms, sec, min, hrs;
 	uint64_t ms, sec, min, hrs;
 
 
@@ -1075,6 +1074,8 @@ int32_t cam_sensor_driver_cmd(struct cam_sensor_ctrl_t *s_ctrl,
 		return -EINVAL;
 		return -EINVAL;
 	}
 	}
 
 
+	power_info = &s_ctrl->sensordata->power_info;
+
 	if (cmd->op_code != CAM_SENSOR_PROBE_CMD) {
 	if (cmd->op_code != CAM_SENSOR_PROBE_CMD) {
 		if (cmd->handle_type != CAM_HANDLE_USER_POINTER) {
 		if (cmd->handle_type != CAM_HANDLE_USER_POINTER) {
 			CAM_ERR(CAM_SENSOR, "Invalid handle type: %d",
 			CAM_ERR(CAM_SENSOR, "Invalid handle type: %d",