fix: out-of-bounds access

Iterating on the interrupts descriptors assigned
to a VM must depend on VM_MANIFEST_MAX_INTERRUPTS,
rather than HF_NUM_INTIDS.

Signed-off-by: J-Alves <joao.alves@arm.com>
Change-Id: Ifeb8526ea7e9a8f90f119e1c6cb0f4b862e6f44e
diff --git a/src/ffa/spmc/interrupts.c b/src/ffa/spmc/interrupts.c
index 755dcb4..d3a77d4 100644
--- a/src/ffa/spmc/interrupts.c
+++ b/src/ffa/spmc/interrupts.c
@@ -44,7 +44,7 @@
 	for (ffa_vm_count_t index = 0; index < vm_get_count(); ++index) {
 		struct vm *vm = vm_find_index(index);
 
-		for (uint32_t j = 0; j < HF_NUM_INTIDS; j++) {
+		for (uint32_t j = 0; j < VM_MANIFEST_MAX_INTERRUPTS; j++) {
 			struct interrupt_descriptor int_desc =
 				vm->interrupt_desc[j];
 
diff --git a/src/ffa/spmc/vm.c b/src/ffa/spmc/vm.c
index 5a8de6a..876b636 100644
--- a/src/ffa/spmc/vm.c
+++ b/src/ffa/spmc/vm.c
@@ -221,7 +221,7 @@
 	dlog_verbose("Interrupts belonging to SP %x disabled\n",
 		     vm_locked.vm->id);
 
-	for (uint32_t i = 0; i < HF_NUM_INTIDS; i++) {
+	for (uint32_t i = 0; i < VM_MANIFEST_MAX_INTERRUPTS; i++) {
 		struct interrupt_descriptor int_desc;
 
 		int_desc = vm_locked.vm->interrupt_desc[i];
diff --git a/src/vm.c b/src/vm.c
index 4a76529..dcf7eb3 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1089,7 +1089,7 @@
 static struct interrupt_descriptor *vm_find_interrupt_descriptor(
 	struct vm_locked vm_locked, uint32_t id)
 {
-	for (uint32_t i = 0; i < HF_NUM_INTIDS; i++) {
+	for (uint32_t i = 0; i < VM_MANIFEST_MAX_INTERRUPTS; i++) {
 		/* Interrupt descriptors are populated contiguously. */
 		if (!vm_locked.vm->interrupt_desc[i].valid) {
 			break;