|
@@ -437,6 +437,10 @@ static int cam_ope_mgr_put_cmd_buf(struct cam_packet *packet)
|
|
|
((uint32_t *) &packet->payload + packet->cmd_buf_offset/4);
|
|
|
|
|
|
for (i = 0; i < packet->num_cmd_buf; i++) {
|
|
|
+ rc = cam_packet_util_validate_cmd_desc(&cmd_desc[i]);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
+
|
|
|
if (cmd_desc[i].type != CAM_CMD_BUF_GENERIC ||
|
|
|
cmd_desc[i].meta_data == OPE_CMD_META_GENERIC_BLOB)
|
|
|
continue;
|
|
@@ -558,6 +562,10 @@ static int cam_ope_dump_frame_process(struct cam_packet *packet,
|
|
|
cmd_desc = (struct cam_cmd_buf_desc *)
|
|
|
((uint32_t *) &packet->payload + packet->cmd_buf_offset/4);
|
|
|
for (i = 0; i < packet->num_cmd_buf; i++) {
|
|
|
+ rc = cam_packet_util_validate_cmd_desc(&cmd_desc[i]);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
+
|
|
|
if (cmd_desc[i].type != CAM_CMD_BUF_GENERIC ||
|
|
|
cmd_desc[i].meta_data == OPE_CMD_META_GENERIC_BLOB)
|
|
|
continue;
|
|
@@ -2303,6 +2311,10 @@ static int cam_ope_mgr_process_cmd_desc(struct cam_ope_hw_mgr *hw_mgr,
|
|
|
|
|
|
*ope_cmd_buf_addr = 0;
|
|
|
for (i = 0; i < packet->num_cmd_buf; i++, num_cmd_buf++) {
|
|
|
+ rc = cam_packet_util_validate_cmd_desc(&cmd_desc[i]);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
+
|
|
|
if (cmd_desc[i].type != CAM_CMD_BUF_GENERIC ||
|
|
|
cmd_desc[i].meta_data == OPE_CMD_META_GENERIC_BLOB)
|
|
|
continue;
|
|
@@ -3212,16 +3224,20 @@ static int cam_ope_process_generic_cmd_buffer(
|
|
|
((uint32_t *) &packet->payload + packet->cmd_buf_offset/4);
|
|
|
|
|
|
for (i = 0; i < packet->num_cmd_buf; i++) {
|
|
|
+ rc = cam_packet_util_validate_cmd_desc(&cmd_desc[i]);
|
|
|
+ if (rc)
|
|
|
+ return rc;
|
|
|
+
|
|
|
if (!cmd_desc[i].length)
|
|
|
continue;
|
|
|
|
|
|
- if (cmd_desc[i].meta_data != OPE_CMD_META_GENERIC_BLOB)
|
|
|
- continue;
|
|
|
+ if (cmd_desc[i].meta_data != OPE_CMD_META_GENERIC_BLOB)
|
|
|
+ continue;
|
|
|
|
|
|
- rc = cam_packet_util_process_generic_cmd_buffer(&cmd_desc[i],
|
|
|
- cam_ope_packet_generic_blob_handler, &cmd_generic_blob);
|
|
|
- if (rc)
|
|
|
- CAM_ERR(CAM_OPE, "Failed in processing blobs %d", rc);
|
|
|
+ rc = cam_packet_util_process_generic_cmd_buffer(&cmd_desc[i],
|
|
|
+ cam_ope_packet_generic_blob_handler, &cmd_generic_blob);
|
|
|
+ if (rc)
|
|
|
+ CAM_ERR(CAM_OPE, "Failed in processing blobs %d", rc);
|
|
|
}
|
|
|
|
|
|
return rc;
|