mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2025-02-17 09:10:07 +00:00
services/spm: Fix service UUID lookup
The spm_sp_get_by_uuid() function is used to look up the secure partition that provides a given service. Within this function, memcmp() is used to compare the service UUIDs but it uses the size of the rdsvc->uuid pointer instead of the size of its content (missing dereference). This means that only a partial comparison is performed as UUIDs are 128 bits in length and rdsvc->uuid is a uint32_t typed pointer. Instead, use the size of the array pointed to by the svc_uuid parameter, which will be the full 128 bits, for the comparison. Change-Id: I258fb0cca3bf19f97b8f2a4c133981647cd050e4 Signed-off-by: Paul Beesley <paul.beesley@arm.com>
This commit is contained in:
parent
01e7e0cadc
commit
00e51ca312
@ -104,7 +104,7 @@ sp_context_t *spm_sp_get_by_uuid(const uint32_t (*svc_uuid)[4])
|
||||
rdsvc = rdsvc->next) {
|
||||
uint32_t *rd_uuid = (uint32_t *)(rdsvc->uuid);
|
||||
|
||||
if (memcmp(rd_uuid, svc_uuid, sizeof(rd_uuid)) == 0) {
|
||||
if (memcmp(rd_uuid, svc_uuid, sizeof(*svc_uuid)) == 0) {
|
||||
return sp_ctx;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user