aboutsummaryrefslogtreecommitdiffstats
path: root/plat
diff options
context:
space:
mode:
authorNariman Poushin <nariman.poushin@linaro.org>2018-05-01 13:07:47 +0100
committerNariman Poushin <nariman.poushin@linaro.org>2018-06-23 17:25:40 +0100
commit8e26307db63b1da1029713ba5d22b3428a2dab4b (patch)
treeef71c52a2748c94e270913768699926768a8442c /plat
parent9b4c611c4b05fdf03722d2de488ea49beb10a8b7 (diff)
downloadplatform_external_arm-trusted-firmware-8e26307db63b1da1029713ba5d22b3428a2dab4b.tar.gz
platform_external_arm-trusted-firmware-8e26307db63b1da1029713ba5d22b3428a2dab4b.tar.bz2
platform_external_arm-trusted-firmware-8e26307db63b1da1029713ba5d22b3428a2dab4b.zip
plat/arm: css: Sanitize the input to css_validate_power_state
In the case of the platform max power level being less than the system power level, make sure to not overrun the array of power states. This fixes Coverity Scan OVERRUN defect CID 267021. Change-Id: I52646ab9be2fceeb5c331b5dad7a6267991f4197 Signed-off-by: Nariman Poushin <nariman.poushin@linaro.org>
Diffstat (limited to 'plat')
-rw-r--r--plat/arm/css/common/css_pm.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/plat/arm/css/common/css_pm.c b/plat/arm/css/common/css_pm.c
index 986cb0846..4735a9dcc 100644
--- a/plat/arm/css/common/css_pm.c
+++ b/plat/arm/css/common/css_pm.c
@@ -264,11 +264,23 @@ static int css_validate_power_state(unsigned int power_state,
rc = arm_validate_power_state(power_state, req_state);
/*
+ * Ensure that we don't overrun the pwr_domain_state array in the case
+ * where the platform supported max power level is less than the system
+ * power level
+ */
+
+#if (PLAT_MAX_PWR_LVL == CSS_SYSTEM_PWR_DMN_LVL)
+
+ /*
* Ensure that the system power domain level is never suspended
* via PSCI CPU SUSPEND API. Currently system suspend is only
* supported via PSCI SYSTEM SUSPEND API.
*/
- req_state->pwr_domain_state[CSS_SYSTEM_PWR_DMN_LVL] = ARM_LOCAL_STATE_RUN;
+
+ req_state->pwr_domain_state[CSS_SYSTEM_PWR_DMN_LVL] =
+ ARM_LOCAL_STATE_RUN;
+#endif
+
return rc;
}