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

Commit 7184491f authored by Cristian Marussi's avatar Cristian Marussi Committed by Greg Kroah-Hartman
Browse files

firmware: arm_scmi: Harden accesses to the reset domains

commit e9076ffbcaed5da6c182b144ef9f6e24554af268 upstream.

Accessing reset domains descriptors by the index upon the SCMI drivers
requests through the SCMI reset operations interface can potentially
lead to out-of-bound violations if the SCMI driver misbehave.

Add an internal consistency check before any such domains descriptors
accesses.

Link: https://lore.kernel.org/r/20220817172731.1185305-5-cristian.marussi@arm.com


Signed-off-by: default avatarCristian Marussi <cristian.marussi@arm.com>
Signed-off-by: default avatarSudeep Holla <sudeep.holla@arm.com>
Signed-off-by: default avatarDominique Martinet <dominique.martinet@atmark-techno.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 6726429c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -135,8 +135,12 @@ static int scmi_domain_reset(const struct scmi_handle *handle, u32 domain,
	struct scmi_xfer *t;
	struct scmi_msg_reset_domain_reset *dom;
	struct scmi_reset_info *pi = handle->reset_priv;
	struct reset_dom_info *rdom = pi->dom_info + domain;
	struct reset_dom_info *rdom;

	if (domain >= pi->num_domains)
		return -EINVAL;

	rdom = pi->dom_info + domain;
	if (rdom->async_reset)
		flags |= ASYNCHRONOUS_RESET;