Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 640277f7 authored by AnilKumar Chimata's avatar AnilKumar Chimata
Browse files

qseecom: Add proper checks for ION handle



Add checks in qseecom driver to validate the ION handle before
passing to ION driver.

Change-Id: I5e242d621f423e65b73f614df5ba94cfe8253369
Signed-off-by: default avatarAnilKumar Chimata <anilc@codeaurora.org>
parent 3fc0e794
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -756,6 +756,12 @@ static int __qseecom_process_incomplete_cmd(struct qseecom_dev_handle *data,
			pr_err("Listener Svc %d does not exist\n", lstnr);
			return -EINVAL;
		}

		if (!ptr_svc->ihandle) {
			pr_err("Client handle is not initialized\n");
			return -EINVAL;
		}

		if (ptr_svc->svc.listener_id != lstnr) {
			pr_warning("Service requested for does on exist\n");
			return -ERESTARTSYS;
@@ -1276,6 +1282,11 @@ static int qseecom_send_service_cmd(struct qseecom_dev_handle *data,
		return -EINVAL;
	}

	if (!data || !data->client.ihandle) {
		pr_err("Client or client handle is not initialized\n");
		return -EINVAL;
	}

	if (data->client.sb_virt == NULL) {
		pr_err("sb_virt null\n");
		return -EINVAL;
@@ -1447,6 +1458,11 @@ static int __qseecom_send_cmd(struct qseecom_dev_handle *data,
		return -ENOMEM;
	}

	if (!data || !data->client.ihandle) {
		pr_err("Client or client handle is not initialized\n");
		return -EINVAL;
	}

	send_data_req.qsee_cmd_id = QSEOS_CLIENT_SEND_DATA_COMMAND;
	send_data_req.app_id = data->client.app_id;
	send_data_req.req_ptr = (uint32_t)(__qseecom_uvirt_to_kphys(data,
@@ -3514,6 +3530,11 @@ static int __qseecom_qteec_issue_cmd(struct qseecom_dev_handle *data,
	int ret = 0;
	uint32_t reqd_len_sb_in = 0;

	if (!data || !data->client.ihandle) {
		pr_err("Client or client handle is not initialized\n");
		return -EINVAL;
	}

	ret  = __qseecom_qteec_validate_msg(data, req);
	if (ret)
		return ret;
@@ -3608,6 +3629,11 @@ static int qseecom_qteec_invoke_modfd_cmd(struct qseecom_dev_handle *data,
		return ret;
	}

	if (!data || !data->client.ihandle) {
		pr_err("Client or client handle is not initialized\n");
		return -EINVAL;
	}

	ret = __qseecom_qteec_validate_msg(data,
					(struct qseecom_qteec_req *)(&req));
	if (ret)