diff options
author | Max Shvetsov <maksims.svecovs@arm.com> | 2020-08-25 11:50:18 +0100 |
---|---|---|
committer | Max Shvetsov <maksims.svecovs@arm.com> | 2020-09-07 16:16:35 +0100 |
commit | f7fb0bf77f3434bfb67411cad65e704fdef27f76 (patch) | |
tree | 3cef013f24c94da815f89422c0018df87cb40872 /services/std_svc | |
parent | a41ca4c3449c51822d318e295b21d452efac2848 (diff) | |
download | trusted-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.c | 9 |
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]; } /******************************************************************************* |