aboutsummaryrefslogtreecommitdiff
path: root/services/std_svc
diff options
context:
space:
mode:
authorMax Shvetsov <maksims.svecovs@arm.com>2020-08-25 11:50:18 +0100
committerMax Shvetsov <maksims.svecovs@arm.com>2020-09-07 16:16:35 +0100
commitf7fb0bf77f3434bfb67411cad65e704fdef27f76 (patch)
tree3cef013f24c94da815f89422c0018df87cb40872 /services/std_svc
parenta41ca4c3449c51822d318e295b21d452efac2848 (diff)
downloadtrusted-firmware-a-f7fb0bf77f3434bfb67411cad65e704fdef27f76.tar.gz
Fix: fixing coverity issue for SPM Core.
spmd_get_context_by_mpidr was using potentially negative value as an array index. plat_core_pos_by_mpidr could return -1 on failure which is utilized by some platforms. Signed-off-by: Max Shvetsov <maksims.svecovs@arm.com> Change-Id: I7f8827e77f18da389c9cafdc1fc841aba9f03120
Diffstat (limited to 'services/std_svc')
-rw-r--r--services/std_svc/spmd/spmd_main.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/services/std_svc/spmd/spmd_main.c b/services/std_svc/spmd/spmd_main.c
index 6f0d9b1dcc..10da08ebe6 100644
--- a/services/std_svc/spmd/spmd_main.c
+++ b/services/std_svc/spmd/spmd_main.c
@@ -46,7 +46,14 @@ static entry_point_info_t *spmc_ep_info;
******************************************************************************/
spmd_spm_core_context_t *spmd_get_context_by_mpidr(uint64_t mpidr)
{
- return &spm_core_context[plat_core_pos_by_mpidr(mpidr)];
+ int core_idx = plat_core_pos_by_mpidr(mpidr);
+
+ if (core_idx < 0) {
+ ERROR("Invalid mpidr: %llx, returned ID: %d\n", mpidr, core_idx);
+ panic();
+ }
+
+ return &spm_core_context[core_idx];
}
/*******************************************************************************