From 053b4f92cbfa627418441daf5f9b1b89739c2fd1 Mon Sep 17 00:00:00 2001 From: Chris Kay Date: Wed, 9 May 2018 15:46:07 +0100 Subject: [PATCH] plat/arm: Fix incorrect bounds check in ARM_CASSERT_MMAP The bounds check in ARM_CASSERT_MMAP does not take into account the array sentinel in plat_arm_mmap. This commit fixes this, and adds an additional check to ensure the number of entries in the array is within the bounds of PLAT_ARM_MMAP_ENTRIES. Change-Id: Ie6df10c0aa0890d62826bc3224ad7b3e36fd53e2 Signed-off-by: Chris Kay --- include/plat/arm/common/plat_arm.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/include/plat/arm/common/plat_arm.h b/include/plat/arm/common/plat_arm.h index 612a63a8c..fc3f4ec3a 100644 --- a/include/plat/arm/common/plat_arm.h +++ b/include/plat/arm/common/plat_arm.h @@ -59,9 +59,11 @@ typedef struct arm_tzc_regions_info { PLAT_ARM_TZC_NS_DEV_ACCESS} #endif -#define ARM_CASSERT_MMAP \ - CASSERT((ARRAY_SIZE(plat_arm_mmap) + ARM_BL_REGIONS) \ - <= MAX_MMAP_REGIONS, \ +#define ARM_CASSERT_MMAP \ + CASSERT((ARRAY_SIZE(plat_arm_mmap) - 1) <= PLAT_ARM_MMAP_ENTRIES, \ + assert_plat_arm_mmap_mismatch); \ + CASSERT((PLAT_ARM_MMAP_ENTRIES + ARM_BL_REGIONS) \ + <= MAX_MMAP_REGIONS, \ assert_max_mmap_regions); /*