Check rxtx node availability before accessing rxtx struct

Make sure that rx_tx-buffer(compatible "arm,ffa-manifest-rx_tx-buffer")
node is available in Partition's manifest before trying to
populate/sanitize rxtx structure's members with memory regions.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I3b6fb6b5618f7edeebc1b89a12f51fcddffa198b
diff --git a/src/manifest.c b/src/manifest.c
index 9db1863..273d445 100644
--- a/src/manifest.c
+++ b/src/manifest.c
@@ -347,21 +347,24 @@
 		dlog_verbose("      Attributes:  %u\n",
 			     mem_regions[i].attributes);
 
-		TRY(read_optional_uint32(mem_node, "phandle",
-					 (uint32_t)MANIFEST_INVALID_ADDRESS,
-					 &phandle));
-		if (phandle == rxtx->rx_phandle) {
-			dlog_verbose("      Assigned as RX buffer\n");
-			rxtx->rx_buffer = &mem_regions[i];
-		} else if (phandle == rxtx->tx_phandle) {
-			dlog_verbose("      Assigned as TX buffer\n");
-			rxtx->tx_buffer = &mem_regions[i];
+		if (rxtx->available) {
+			TRY(read_optional_uint32(
+				mem_node, "phandle",
+				(uint32_t)MANIFEST_INVALID_ADDRESS, &phandle));
+			if (phandle == rxtx->rx_phandle) {
+				dlog_verbose("      Assigned as RX buffer\n");
+				rxtx->rx_buffer = &mem_regions[i];
+			} else if (phandle == rxtx->tx_phandle) {
+				dlog_verbose("      Assigned as TX buffer\n");
+				rxtx->tx_buffer = &mem_regions[i];
+			}
 		}
 
 		i++;
 	} while (fdt_next_sibling(mem_node) && (i < SP_MAX_MEMORY_REGIONS));
 
-	if (rxtx->rx_buffer->page_count != rxtx->tx_buffer->page_count) {
+	if (rxtx->available &&
+	    (rxtx->rx_buffer->page_count != rxtx->tx_buffer->page_count)) {
 		return MANIFEST_ERROR_RXTX_SIZE_MISMATCH;
 	}