]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
firmware: arm_scmi: Fix OOB in scmi_power_name_get()
authorGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 15 May 2026 09:59:15 +0000 (11:59 +0200)
committerSudeep Holla <sudeep.holla@kernel.org>
Thu, 21 May 2026 16:31:51 +0000 (17:31 +0100)
scmi_power_name_get() does not validate the domain number passed by the
external caller, which may lead to an out-of-bounds access.

Fix this by returning "unknown" for invalid domains, like
scmi_reset_name_get() does.

Fixes: 76a6550990e296a7 ("firmware: arm_scmi: add initial support for power protocol")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Cristian Marussi <cristian.marussi@arm.com>
Link: https://patch.msgid.link/75caae28bdffb55199a0bc6cac5df112a966c608.1778838987.git.geert+renesas@glider.be
Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
drivers/firmware/arm_scmi/power.c

index bb5062ab8280e02b47a7ca428e2d21798e384eb2..28ef63a4ecc2e1dfca744154e42d80d98124a751 100644 (file)
@@ -204,8 +204,12 @@ scmi_power_name_get(const struct scmi_protocol_handle *ph,
                    u32 domain)
 {
        struct scmi_power_info *pi = ph->get_priv(ph);
-       struct power_dom_info *dom = pi->dom_info + domain;
+       struct power_dom_info *dom;
+
+       if (domain >= pi->num_domains)
+               return "unknown";
 
+       dom = pi->dom_info + domain;
        return dom->name;
 }