diff --git a/inc/hf/ffa_internal.h b/inc/hf/ffa_internal.h
index 201f04f..3393305 100644
--- a/inc/hf/ffa_internal.h
+++ b/inc/hf/ffa_internal.h
@@ -18,6 +18,8 @@
 
 #include <stdint.h>
 
+#include "hf/check.h"
+
 #include "vmapi/hf/ffa.h"
 
 #define FFA_VERSION_MAJOR 0x1
@@ -30,3 +32,21 @@
 {
 	return (struct ffa_value){.func = FFA_ERROR_32, .arg2 = error_code};
 }
+
+/**
+ * Return the offset to the first constituent within the
+ * `ffa_composite_memory_region` for the given receiver from an
+ * `ffa_memory_region`. The caller must check that the receiver_index is within
+ * bounds, and that it has a composite memory region offset.
+ */
+static inline uint32_t ffa_composite_constituent_offset(
+	struct ffa_memory_region *memory_region, uint32_t receiver_index)
+{
+	CHECK(receiver_index < memory_region->receiver_count);
+	CHECK(memory_region->receivers[receiver_index]
+		      .composite_memory_region_offset != 0);
+
+	return memory_region->receivers[receiver_index]
+		       .composite_memory_region_offset +
+	       sizeof(struct ffa_composite_memory_region);
+}
diff --git a/src/ffa_memory.c b/src/ffa_memory.c
index 6ca8a51..e6ab21e 100644
--- a/src/ffa_memory.c
+++ b/src/ffa_memory.c
@@ -1097,6 +1097,7 @@
 {
 	struct ffa_composite_memory_region *composite;
 	uint32_t receivers_length;
+	uint32_t constituents_offset;
 	uint32_t constituents_length;
 	enum ffa_data_access data_access;
 	enum ffa_instruction_access instruction_access;
@@ -1122,13 +1123,16 @@
 	 */
 	receivers_length = sizeof(struct ffa_memory_access) *
 			   memory_region->receiver_count;
+	constituents_offset =
+		ffa_composite_constituent_offset(memory_region, 0);
 	if (memory_region->receivers[0].composite_memory_region_offset <
 		    sizeof(struct ffa_memory_region) + receivers_length ||
-	    memory_region->receivers[0].composite_memory_region_offset +
-			    sizeof(struct ffa_composite_memory_region) >=
-		    memory_share_length) {
+	    constituents_offset >= memory_share_length) {
 		dlog_verbose(
-			"Invalid composite memory region descriptor offset.\n");
+			"Invalid composite memory region descriptor offset "
+			"%d.\n",
+			memory_region->receivers[0]
+				.composite_memory_region_offset);
 		return ffa_error(FFA_INVALID_PARAMETERS);
 	}
 
@@ -1139,11 +1143,8 @@
 	 */
 	constituents_length = sizeof(struct ffa_memory_region_constituent) *
 			      composite->constituent_count;
-	if (memory_share_length !=
-	    memory_region->receivers[0].composite_memory_region_offset +
-		    sizeof(struct ffa_composite_memory_region) +
-		    constituents_length) {
-		dlog_verbose("Invalid length %d or constituent offset %d.\n",
+	if (memory_share_length != constituents_offset + constituents_length) {
+		dlog_verbose("Invalid length %d or composite offset %d.\n",
 			     memory_share_length,
 			     memory_region->receivers[0]
 				     .composite_memory_region_offset);
