services/spm: Fix service UUID lookup
authorPaul Beesley <paul.beesley@arm.com>
Mon, 8 Apr 2019 14:24:43 +0000 (15:24 +0100)
committerPaul Beesley <paul.beesley@arm.com>
Tue, 9 Apr 2019 10:10:09 +0000 (11:10 +0100)
commit00e51ca312cdf64554ac6c393c7cdf06b1c7a7a7
treea0f617338e8c24fa6ee1f6aecbb71feb0103355e
parent01e7e0cadcfee14cc8ce6846cbcab6182fbf2cea
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>
services/std_svc/spm/spm_main.c