fix(memory share): assert pointer before dereferencing
Assert the receiver's pointer is valid before dereferencing.
Signed-off-by: J-Alves <joao.alves@arm.com>
Change-Id: Ifa99ca64f1b638eb071fda0bb27e3e9d3c22a11b
diff --git a/src/ffa_memory.c b/src/ffa_memory.c
index 55df52e..4d0b084 100644
--- a/src/ffa_memory.c
+++ b/src/ffa_memory.c
@@ -3961,13 +3961,18 @@
for (uint32_t i = 0; i < memory_region->receiver_count; i++) {
if (share_state->retrieved_fragment_count[i] != 0) {
+ struct ffa_memory_access *receiver =
+ ffa_memory_region_get_receiver(memory_region,
+ i);
+
+ assert(receiver != NULL);
+ (void)receiver;
dlog_verbose(
"Tried to reclaim memory handle %#lx "
"that has not been relinquished by all "
"borrowers(%x).\n",
handle,
- ffa_memory_region_get_receiver(memory_region, i)
- ->receiver_permissions.receiver);
+ receiver->receiver_permissions.receiver);
ret = ffa_error(FFA_DENIED);
goto out;
}